Encriptar texto con SHA256 con Javascript en navegadores modernos

Para encriptar una cadena de texto con SHA-256 en JavaScript, puedes utilizar la función crypto.subtle.digest(), que está disponible en los navegadores modernos compatibles con el API de Web Cryptography....
Publicado
Actualizado
Engagements 0 Comentario

Para encriptar una cadena de texto con SHA-256 en JavaScript, puedes utilizar la función crypto.subtle.digest(), que está disponible en los navegadores modernos compatibles con el API de Web Cryptography.

Aquí te dejo un ejemplo de cómo usar esta función para generar el hash SHA-256 de una cadena de texto:

async function sha256(message) {
          const msgBuffer = new TextEncoder().encode(message); // Codifica la cadena a utf-8
          const hashBuffer = await crypto.subtle.digest("SHA-256", msgBuffer); // Genera el hash SHA-256 del buffer de mensajes
        
          const hashArray = Array.from(new Uint8Array(hashBuffer)); // Convierte el hash buffer en un array de bytes
          const hashHex = hashArray
            .map((b) => b.toString(16).padStart(2, "0"))
            .join(""); // Convierte el array de bytes en una cadena hexadecimal return hashHex;
        }
        

Para usar esta función, simplemente llama a la función sha256() con la cadena de texto que deseas cifrar como argumento:

const message = "Hola, este es un mensaje de prueba";
        const hash = await sha256(message);
        console.log("Hash SHA-256:", hash);

Ten en cuenta que la función crypto.subtle.digest() es una función asíncrona que devuelve una promesa, por lo que debes usar la sintaxis await o .then() para obtener el resultado de la función. Además, el API de Web Cryptography requiere que la página se sirva a través de HTTPS para poder utilizar esta función.

Comentarios