Saltar al contenido
MasterMath

Generador de hash MD5 y SHA

Escribe un texto y salen sus cinco huellas a la vez, calculadas en tu navegador. Sirve para comprobar que un archivo descargado coincide con el hash que publica su autor y para entender por qué MD5 ya no vale para firmar.

SHA-256

—

AlgoritmoBitsHash
Bytes de entrada—
Caracteres—
Comparación—

Cómo se ha calculado

    Qué es un hash y para qué sirve

    Una función hash toma un dato de cualquier tamaño y devuelve una huella de tamaño fijo: 32 caracteres hexadecimales en MD5, 64 en SHA-256. Tiene tres propiedades que la hacen útil: el mismo dato da siempre la misma huella, un cambio mínimo en el dato cambia la huella entera, y de la huella no se puede reconstruir el dato. Con eso se comprueba que una descarga llegó intacta, se guardan contraseñas sin guardar la contraseña, y se firma un documento firmando solo su huella.

    Lo que un hash no es: un cifrado. No hay clave ni forma de dar marcha atrás. Lo que sí se puede hacer es probar candidatos —millones por segundo— hasta dar con uno que produzca esa huella, y por eso las contraseñas se guardan con sal y con funciones lentas a propósito, no con un MD5 a secas.

    MD5, SHA-1 y SHA-2, uno a uno

    MD5 (1992) da 128 bits. Se conocen colisiones desde 2004 —dos entradas distintas con la misma huella— y hoy se fabrican en segundos, así que no sirve para firmar ni para contraseñas. Sigue siendo útil para detectar corrupción accidental en una descarga, que es para lo que la mayoría de la gente lo busca.

    SHA-1 (1995) da 160 bits. Corrió la misma suerte en 2017, cuando se publicó la primera colisión práctica; los navegadores dejaron de aceptar certificados firmados con él ese mismo año. SHA-256, SHA-384 y SHA-512 son la familia SHA-2 (2001), sin ataques prácticos conocidos, y son lo que se usa hoy: SHA-256 en casi todo, SHA-512 donde el procesador es de 64 bits y los datos grandes, porque ahí es más rápido.

    Cómo comprobar una descarga

    Quien publica un archivo grande —una imagen de sistema, un instalador— suele publicar al lado su hash. Después de descargar, se calcula el hash del archivo recibido y se compara con el publicado: si coinciden, el archivo es idéntico bit a bit; si no, algo cambió por el camino, sea un corte de red o algo peor. Esta página calcula el hash de un texto; para un archivo, en Windows es certutil -hashfile archivo SHA256, en macOS shasum -a 256 archivo y en Linux sha256sum archivo.

    El campo «comparar con» hace esa comprobación por ti: pega el hash publicado y la página dice si coincide con alguno de los cinco, sin que tengas que leer sesenta y cuatro caracteres a ojo. Las mayúsculas no importan; los espacios, tampoco.

    Lo que conviene saber

    El hash se calcula sobre bytes, no sobre caracteres, y el mismo texto puede tener bytes distintos según la codificación: «España» son siete bytes en UTF-8 y seis en Latin-1, con dos hashes que no se parecen en nada. Esta página usa UTF-8, que es lo que usa casi todo hoy; si un hash publicado no coincide con el tuyo y el texto lleva acentos, la codificación es lo primero que hay que mirar. Y un salto de línea al final también cuenta: echo lo añade, y es el motivo más frecuente de que un hash calculado en la terminal no coincida con el de aquí.

    Todo se calcula en tu navegador con la API criptográfica que trae —MD5 no está en ella y va escrito a mano, con los vectores de prueba del estándar comprobados—. No se envía nada a ningún sitio.

    Preguntas frecuentes

    ¿Qué es un hash?

    Una huella de longitud fija que sale de cualquier dato: un texto, un archivo, un disco entero. Cambiar un solo bit del dato cambia la huella por completo, y de la huella no se puede volver al dato. Sirve para comprobar que dos copias son idénticas sin compararlas byte a byte.

    ¿Se puede descifrar un hash?

    No, porque no es un cifrado: es una función de un solo sentido. Lo que sí se puede es probar millones de candidatos y ver cuál da esa huella, que es como se rompen las contraseñas guardadas con un hash débil o sin sal.

    ¿MD5 sigue siendo seguro?

    Para firmar o guardar contraseñas, no: se conocen colisiones desde 2004 y se fabrican en segundos. Para comprobar que una descarga llegó entera sigue siendo útil, y por eso muchos sitios lo publican todavía junto al SHA-256.

    ¿Por qué el hash de «hola» y el de «Hola» no se parecen en nada?

    Es el efecto avalancha, y es a propósito: un cambio mínimo en la entrada tiene que cambiar alrededor de la mitad de los bits de la salida. Si dos entradas parecidas dieran huellas parecidas, se podría adivinar una a partir de la otra.

    ¿Qué algoritmo uso?

    SHA-256 para casi todo. SHA-512 si el sistema es de 64 bits y se calcula sobre datos grandes, que ahí es más rápido. SHA-1 y MD5 solo para comprobar la integridad de algo que ya se publicó con ellos.

    ¿El texto que escribo sale de mi navegador?

    No. Todo se calcula en tu navegador con las funciones criptográficas que trae; no se envía nada a ningún servidor. Puedes comprobarlo desconectando la red: la página sigue funcionando.