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