Cómo se usa
- 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.
- 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.
- En Formato de salida, elige hex (minúsculas), HEX (mayúsculas) o Base64.
- 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.is | 2e3c0e8b828164a8db7f62146ca87e14 |
你好 | 7eca689f0d3389d9dea66ae112e5cfd7 |
Preguntas frecuentes
¿Se puede descifrar un hash MD5?
¿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?
==. 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?
md5sum o certutil.