May 21, 2025

¿Cómo usar ganchos para la API criptográfica web en React?

Dejar un mensaje

¡Hola! Como proveedor de ganchos, he visto de primera mano cómo la demanda de ganchos versátiles y confiables está en aumento, no solo en el mundo físico sino también en el espacio digital. Hoy, voy a hablar de algo un poco diferente: cómo usar ganchos para la API criptográfica web en React. Pero primero, echemos un vistazo rápido a algunos de los increíbles ganchos que ofrecemos en el reino físico.

Tenemos algunos productos realmente geniales como elGancho para tubos rectangulares. Este gancho es muy útil para todo tipo de aplicaciones donde necesita adjuntar cosas al tubo rectangular. Es resistente, bueno, hecho y puede manejar una buena cantidad de peso. Otra gran opción es elGancho de línea de estante de supermercado. Estos ganchos están diseñados específicamente para los estantes de los supermercados, lo que facilita la exhibición de productos y mantiene todo organizado.

Hook For Rectangular Tubing66-1

Ahora, vamos a sumergirnos en el lado digital de las cosas. La API Web Crypto es una herramienta poderosa que permite a los desarrolladores web realizar operaciones criptográficas en el navegador. Se trata de mantener los datos seguros, ya sea información del usuario, transacciones financieras o cualquier otra cosa que necesite protección. Y reaccionar, bueno, es una de las bibliotecas JavaScript más populares para construir interfaces de usuario. Entonces, ¿cómo reunimos a estos dos usando ganchos?

¿Qué son los ganchos en React?

Si es nuevo en React, los ganchos son una característica relativamente nueva (introducida en React 16.8) que le permite usar características de estado y otras características de React sin escribir una clase. Son funciones que le permiten "enganchar" las características del estado de reacción y el ciclo de vida de los componentes de la función. Por ejemplo, elel USSTATEHook le permite agregar estado a un componente funcional.

importar react, {useState} de 'react'; función ejemplo () {const [count, setCount] = useState (0); return (<div> <p> ha hecho clic en {Count} Times </p> <Button OnClick = {() => SetCount (Count + 1)}> Haga clic en Me </Button> </div>); }

En este simple ejemplo,el USSTATEes un gancho que inicializa una variable de estadocontarcon un valor inicial de 0. Elcuentala función se utiliza para actualizar el valor decontar.

¿Por qué usar ganchos con la API criptográfica web en React?

El uso de ganchos con la API criptográfica web en React puede hacer que su código sea más modular, reutilizable y más fácil de entender. En lugar de tener un código criptográfico complejo disperso en sus componentes, puede encapsularlo en ganchos personalizados. De esta manera, puede reutilizar la misma lógica criptográfica en diferentes partes de su aplicación.

Creación de un gancho personalizado para la API criptográfica web

Supongamos que queremos crear un gancho personalizado para generar una clave criptográfica aleatoria utilizando la API criptográfica web. Así es como podemos hacerlo:

importar reaccionar de 'reaccionar'; import {useCallback, useEffect, useState} de 'React'; const useCryptokey = () => {const [cryptokey, setCryptokey] = useState (null); const generateKey = useCallback (async () => {try {const Key = Await Window.Crypto.Subtle.GenerateKey ({name: 'aes-gcm', longitud: 256,}, true, ['Encrypt', 'Decrypt']); setryptokey (key);} Catch (error) {console.error (error (error gening); }}, []); useEffect (() => {generateKey ();}, [GenerateKey]); regresar cryptokey; }; function app () {const key = useCryPtokey (); return (<iv> {key? (<p> clave criptografía generada con éxito! </p>): (<p> Generación de la tecla criptográfica ... </p>)} </div>); } Exportar aplicación predeterminada;

En este ejemplo, hemos creado un gancho personalizado llamadousecryptokey. Dentro del gancho, usamos elel USSTATEgancho para administrar el estado de la clave criptográfica. Elliquidación generadaLa función es una función asincrónica que utiliza la API de cripto web para generar una tecla AES - GCM. Usamos elUsecallbackgancho para memorizar elliquidación generadaFunciona para que no se vuelva a crear en cada renderizado. ElUsar efectoel gancho se usa para llamar alliquidación generadafunción cuando el componente se monta.

Encriptar y descifrar datos con un gancho personalizado

Ahora, tomemos un paso más y creemos un gancho personalizado para cifrar y descifrar datos utilizando la clave generada.

importar reaccionar de 'reaccionar'; import {useCallback, useEffect, useState} de 'React'; const useCryptoEntryption = () => {const [cryptokey, setCryptokey] = useState (null); const generateKey = useCallback (async () => {try {const Key = Await Window.Crypto.Subtle.GenerateKey ({name: 'aes-gcm', longitud: 256,}, true, ['Encrypt', 'Decrypt']); setryptokey (key);} Catch (error) {console.error (error (error gening); }}, []); const cifryptData = useCallback (async (data) => {if (! cryptokey) {return null;} try {const encoder = new TextEncoder (); const databuffer = encoder.encode (data); const iv = window.crypto.getgetalues ​​(new Uint8array (12); Window.Crypto.Subtle.Encrypt ({name: 'aes-gcm', iv: iv,}, cryptokey, databuffer); datos: ', error); const decryptData = useCallback (async (cifrypptedData) => {if (! cryptokey) {return null;} try {const iv = cifryptedData.slice (0, 12); const data = encryptedData.slice (12); const descrypted = await window.crypto.subtle.decrypt (n. iv,}, cryptokey, data); useEffect (() => {generateKey ();}, [GenerateKey]); return {encryptData, DecryptData}; }; function app () {const {encryptData, DecryptData} = useCrypToEntryption (); const [cifradoDDATA, setEntryptedData] = useState (nulo); const [DecryptedData, setDecryptedData] = useState (nulo); const handleEnnpt = async () => {const data = 'Hola, mundo!'; const cifrados = espera cifryptData (datos); setEncryptedData (cifrado); }; const handledecrypt = async () => {if (cifryptedData) {const descrypted = await DecryptData (cifrado); setDecryptedData (descifrado); }}; return (<iv> <button onClick = {handleEnnpt}> Encrypt data </boton> {encryptedData && (<p> data cifrado: {cifryptedData.ToString ()} </p>)} <botón ondClick = {handledEcrypt}> Decrypt Data </botin> {DecrypTedpTedTpTedAtedAdates <P> DecrypTypTypty DataTypted Datypty Data: Decrypt}> Decrypt Data </botin> {DecrypTedpTedTedAdates & y <P> DecryptyptyTypted DatypTyTypTed DataTy {DecryptedData} </p>} </div>); } Exportar aplicación predeterminada;

En este ejemplo, hemos ampliado nuestro gancho personalizado para incluir funciones para cifrar y descifrar datos. ElcifradoLa función toma una cadena de datos, los codifica, genera un vector de inicialización aleatorio (IV) y luego cifra los datos utilizando la clave criptográfica generada. EldescifrardataLa función toma los datos cifrados, extrae el IV y descifra los datos utilizando la misma clave.

Conclusión

El uso de ganchos con la API de cripto web en React puede hacer que sus aplicaciones web sean más seguras y más fáciles de mantener. Al encapsular la lógica criptográfica en ganchos personalizados, puede reutilizarla en diferentes componentes y mantener su base de código limpia.

Si estás interesado en nuestros ganchos físicos como elGancho para tubos rectangulareso elGancho de línea de estante de supermercado, o si tiene alguna pregunta sobre el uso de ganchos en el espacio digital, no dude en comunicarse con una discusión de adquisiciones. ¡Siempre estamos aquí para ayudar!

Referencias

  • Reaccionar documentación
  • Documentación de Web Crypto API MDN
Envíeconsulta