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 web

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 un colegio. 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 a 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 en 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 ñ ocupa dos bytes, C3 B1, pero en la antigua codificación Latin-1 ocupa uno solo, F1. Año da, por tanto, un hash distinto aquí del que da un programa que trabaje en Latin-1.

Ejemplo

abc da el hash SHA-256 ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad, el mismo valor que da el NIST en su ejemplo de prueba del algoritmo. Si abc va seguido de un salto de línea, como el que añade la orden 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 un texto, no de un archivo. La suma de comprobació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 solo da el mismo hash si el texto es idéntico byte a byte.

Los finales de línea son la causa más frecuente de que los hashes no coincidan. El HTML Standard exige que un cuadro de texto convierta todos los finales de línea en LF solo, así que un texto de un archivo con finales de línea de Windows, CR LF, da aquí un hash distinto del de 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 retirarse 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 comprueban las herramientas