Generador de hash MD5

Calcula el resumen MD5 de 128 bits de un texto, de bytes en hexadecimal o de un archivo. El hash se actualiza mientras escribes, y el campo Comparar con te indica si coincide con la suma de verificación que esperabas.

Todos los algoritmos

Se ejecuta por completo en tu navegador. No se sube nada.

Cómo se usa

  1. Escribe o pega un texto, cambia el Formato de entrada a Hexadecimal para introducir bytes o haz clic en Abrir archivo para calcular el hash de sus bytes exactos.
  2. Deja la Codificación de texto en UTF-8, salvo que el hash original se calculara a partir de un texto en otro juego de caracteres.
  3. En Formato de salida, elige hex (minúsculas), HEX (mayúsculas) o Base64.
  4. Para comprobar una descarga, pega el MD5 publicado en el campo Comparar con y fíjate en si aparece Coincide.

¿Qué es MD5?

MD5 (Message-Digest Algorithm 5) fue diseñado por Ronald Rivest y publicado en 1992 como RFC 1321. Lee la entrada en bloques de 512 bits y produce un resumen de 128 bits, que normalmente se escribe como 32 caracteres hexadecimales o 24 caracteres Base64. La misma entrada siempre da el mismo resumen, y cambiar un solo bit de la entrada cambia aproximadamente la mitad de los bits de la salida.

El cálculo de un hash es unidireccional: no hay clave ni forma de "descifrar" un hash MD5 para recuperar la entrada. Los sitios que dicen revertir MD5 buscan el hash en enormes tablas con los hashes de palabras y de contraseñas filtradas, y por eso el MD5 sin sal de una contraseña corta suele encontrarse en segundos.

¿Sigue siendo seguro MD5?

No frente a un atacante. Xiaoyun Wang y sus colegas publicaron en 2004 colisiones prácticas: dos entradas distintas con el mismo MD5. Después llegaron las colisiones de prefijo elegido: unos investigadores usaron una en 2008 para crear un certificado de CA fraudulento, y en 2012 el malware Flame usó otra para falsificar un certificado que hacía parecer que su código estaba firmado por Microsoft. Hoy un portátil corriente encuentra una colisión de MD5 en segundos, y RFC 6151 establece que MD5 ya no es aceptable cuando se requiere resistencia a colisiones, como en las firmas digitales.

MD5 sigue siendo válido como suma de verificación frente a daños accidentales, como una descarga incompleta o un bit alterado en el disco, y también para claves de caché o para deduplicar datos de confianza. Cuando el archivo o su suma de verificación puedan proceder de un atacante, usa SHA-256.

Hexadecimal, Base64 y hashes que no coinciden

MD5 se suele mostrar en hexadecimal, que es lo que imprime md5sum. Algunos protocolos envían en su lugar los 16 bytes sin procesar en Base64, por ejemplo el encabezado HTTP Content-MD5 que usan API de almacenamiento en la nube como la de Amazon S3. Elige Base64 en Formato de salida o convierte un valor que ya tengas con Hexadecimal a Base64.

Si tu MD5 es distinto del de otra herramienta, es que los bytes de entrada son distintos. Las causas habituales son un salto de línea final, los finales de línea de Windows u otra codificación de texto: "café" ocupa 5 bytes en UTF-8, pero 4 en ISO-8859-1, así que los dos hashes no se parecen en nada.

$ echo "hello" | md5sum      # calcula el hash de "hello\n"
b1946ac92492d2347c6235b4d2611184  -
$ printf 'hello' | md5sum    # calcula el hash de "hello"
5d41402abc4b2a76b9719d911017c592  -

MD5 en la línea de comandos y en código

md5sum file.iso                          # Linux
md5 file.iso                             # macOS
certutil -hashfile file.iso MD5          # Windows
Get-FileHash file.iso -Algorithm MD5     # PowerShell

# Python
import hashlib
hashlib.md5('hello'.encode('utf-8')).hexdigest()

// Node.js
require('crypto').createHash('md5').update('hello', 'utf8').digest('hex')

La Web Crypto API integrada en los navegadores no incluye MD5, así que esta página lo calcula con JavaScript en tu dispositivo; no se sube nada. La tabla Todos los algoritmos, debajo del resultado, muestra SHA-1, SHA-256, SHA-384, SHA-512, CRC-32 y CRC-32C para la misma entrada.

Ejemplos

Entrada (UTF-8)MD5
Hello, World!65a8e27d8879283831b664bd8b7f0ad4
Base64.is2e3c0e8b828164a8db7f62146ca87e14
你好7eca689f0d3389d9dea66ae112e5cfd7

Preguntas frecuentes

¿Se puede descifrar un hash MD5?
No. MD5 es una función hash unidireccional, no un cifrado, así que no hay nada que descifrar; un "descifrador de MD5" solo puede devolver una entrada que ya esté en sus tablas. Si más adelante necesitas recuperar los datos originales, cífralos o, si no tienen que ser secretos, codifícalos en Base64, que es totalmente reversible.
¿Basta con MD5 para verificar una descarga?

Detecta de forma fiable los daños accidentales. Sin embargo, como las colisiones son baratas, alguien que prepare un archivo de antemano puede crear un segundo archivo, distinto, con el mismo MD5. Para descargas en las que la seguridad importa, comprueba un hash SHA-256 obtenido de una fuente de confianza o una firma.

¿Qué longitud tiene un hash MD5?
128 bits, es decir, 16 bytes: 32 caracteres en hexadecimal o 24 caracteres en Base64 terminados en ==. Una cadena hexadecimal de 32 caracteres también podría ser un hash MD4 o NTLM; el Identificador de hash muestra los posibles algoritmos.
¿Puedo obtener el MD5 de un archivo grande?
Sí. Haz clic en Abrir archivo y sus bytes se procesarán en tu navegador sin subirse. El límite es la memoria que puede usar tu navegador, así que para archivos de varios gigabytes es mejor usar md5sum o certutil.
¿Debo guardar las contraseñas como MD5?
No. MD5 está diseñado para ser rápido, así que una sola GPU prueba miles de millones de contraseñas por segundo. Guarda las contraseñas con Argon2id, scrypt, bcrypt o PBKDF2, que añaden una sal y son lentos a propósito. Y para empezar con buen pie, el Generador de contraseñas crea contraseñas seguras.