Saltar al contenido
Quaestio

Generador de hashes

Escribe un texto y se calculan los hashes con cuatro algoritmos a la vez.

0 caracteres · 0 bytes

Hashes

  • SHA-1160 bits

    Escribe algo en el campo de arriba.

  • SHA-256256 bits

    Escribe algo en el campo de arriba.

  • SHA-384384 bits

    Escribe algo en el campo de arriba.

  • SHA-512512 bits

    Escribe algo en el campo de arriba.

El texto nunca sale de tu navegador. El hash se calcula con la función criptográfica del propio navegador.

Insertar

Inserta esta herramienta en tu sitio

Copia el código y pégalo donde quieras que aparezca la herramienta, por ejemplo en una entrada de blog o en la página de una escuela. Es gratis, el recuadro no tiene anuncios y la herramienta calcula en el navegador de quien la usa.

Cómo funciona

Un hash criptográfico convierte un texto de cualquier longitud en un número fijo de caracteres. El mismo texto da siempre el mismo hash, mientras que el cambio más pequeño da uno completamente distinto.

La función solo funciona en un sentido. No hay forma de calcular el texto a partir del hash, y esa es precisamente su gracia.

Los hashes se usan para comparar archivos, para detectar que algo ha cambiado y como pieza de las firmas y los certificados.

SHA-1 ya no se considera seguro. Desde 2017 existen formas prácticas de construir dos entradas distintas con el mismo hash SHA-1, así que úsalo solo para comparar con sistemas antiguos.

Las contraseñas no deben guardarse con estas funciones. Están hechas para ser rápidas, lo que las hace fáciles de atacar a base de probar. Las contraseñas requieren funciones lentas a propósito, como Argon2id, scrypt y PBKDF2. OWASP solo recomienda bcrypt para sistemas antiguos en los que no hay ni Argon2id ni scrypt.

El texto se codifica en UTF-8 antes de calcular el hash, así que los caracteres con tilde dan aquí el mismo hash que en cualquier otra herramienta correcta.

Cómo funciona la herramienta

El texto se convierte en UTF-8 y se pasa a crypto.subtle.digest del navegador, que calcula SHA-1, SHA-256, SHA-384 y SHA-512 a la vez. Los hashes se escriben en hexadecimal con minúsculas, dos caracteres por byte: 40 caracteres para SHA-1, 64 para SHA-256, 96 para SHA-384 y 128 para SHA-512. Se vuelven a calcular con cada carácter que escribes.

Los mismos bytes dan siempre el mismo hash en cualquier herramienta correcta, pero el mismo texto puede convertirse en bytes distintos. En UTF-8 la ñ son dos bytes, C3 B1, pero en la codificación Latin-1, más antigua, es un solo byte, F1. Una palabra como año da por eso aquí un hash distinto del que da un programa que trabaja en Latin-1.

Ejemplo paso a paso

abc da el hash SHA-256 ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad, el mismo valor que da el NIST en su ejemplo de prueba del algoritmo. Si a abc le sigue un salto de línea, como el que agrega el comando echo, el hash pasa a ser edeaaff3f1774ad2888673770c6d64097e391bc362d7d6fb34982ddf0efd18cb. El salto de línea no se ve en el texto, pero el hash es otro.

Casos límite

La herramienta calcula el hash de texto, no de archivos. La suma de verificación de un archivo descargado se calcula sobre los bytes del archivo, por ejemplo con certutil -hashfile en Windows o con sha256sum en Linux. Pegar el contenido del archivo da el mismo hash solo si el texto es idéntico byte por byte.

Los finales de línea son la causa más común de que los hashes no coincidan. El HTML Standard exige que un cuadro de texto convierta cada final de línea en un LF solo, así que un texto de un archivo con finales de línea de Windows, CR LF, da aquí otro hash que en certutil. También cuentan los espacios al final de una línea y un salto de línea final.

El 15 de diciembre de 2022, el NIST anunció que SHA-1 debe dejar de usarse a más tardar el 31 de diciembre de 2030 y sustituirse por SHA-2 o SHA-3. De las funciones de aquí, SHA-256, SHA-384 y SHA-512 pertenecen a SHA-2.

Fuentes

Cómo se verifican las herramientas