Qué es un hash MD5
MD5 es una función hash. Toma cualquier entrada, desde una letra hasta un archivo grande, y produce una huella de tamaño fijo de 128 bits, que normalmente se escribe como 32 caracteres hexadecimales. La misma entrada siempre da el mismo hash. Un cambio mínimo, aunque sea de un solo carácter, da un hash completamente distinto.
Ron Rivest publicó MD5 en 1992. Todavía es habitual para los checksums de las páginas de descarga, para detectar archivos duplicados, como clave de caché y para detectar cambios rápidamente. Ya no se considera seguro, como verás más abajo.
Cómo usar el generador MD5
Hash de un texto. En Calcular el hash de, deja seleccionado Texto y escribe o pega en el cuadro. Los hashes se actualizan mientras escribes. El texto se procesa como UTF-8, exactamente como lo escribiste, incluidos los espacios y los saltos de línea.
Hash de un archivo. Pulsa Archivo y elige un archivo de hasta 500 MB. El archivo se lee en tu dispositivo. Cuando los hashes están listos, se muestran el nombre del archivo y su tamaño en bytes.
Lee los resultados. El panel Hashes muestra cuatro resultados:
- MD5, destacado, de 32 caracteres hexadecimales
- SHA-1, de 40 caracteres
- SHA-256, de 64 caracteres
- SHA-512, de 128 caracteres
Cada uno tiene su propio botón Copiar. Pulsa Mayúsculas si necesitas las letras en mayúscula.
Compara con un hash conocido. Pega en Comparar con un hash conocido el checksum de una página de descarga. La herramienta lo compara con los cuatro resultados y te dice cuál coincide. Si no coincide ninguno, usa la longitud de tu hash para decirte a qué algoritmo se parece.
Cómo funciona MD5
MD5 rellena la entrada hasta un múltiplo de 512 bits y la procesa por bloques. Cada bloque pasa por 64 rondas de mezcla de bits que combinan sumas, rotaciones y operaciones lógicas. El estado final, formado por cuatro palabras de 32 bits, es el hash. Como la mezcla es tan intensa, el resultado parece aleatorio y cambia por completo cuando cambia cualquier bit de la entrada. Es lo que se llama efecto avalancha.
Ejemplos
| Entrada | MD5 |
|---|---|
| (vacía) | d41d8cd98f00b204e9800998ecf8427e |
abc |
900150983cd24fb0d6963f7d28e17f72 |
hello |
5d41402abc4b2a76b9719d911017c592 |
Hello |
8b1a9953c4611296a827abf8c47804d7 |
Hello, World! |
65a8e27d8879283831b664bd8b7f0ad4 |
The quick brown fox jumps over the lazy dog |
9e107d9d372bb6826bd81d3542a419d6 |
The quick brown fox jumps over the lazy dog. |
e4d909c290d0fb1ca068ffaddf22cbd0 |
Las dos últimas filas solo se diferencian en un punto final y, sin embargo, los hashes no tienen nada en común.
En español pasa lo mismo: el MD5 de hola es 4d186321c1a7f0f354b297e8914ab240 y el de Hola es f688ae26e9cfa3ba6235477831d5122e. Las tildes y la ñ también importan. Esta herramienta calcula el MD5 de año sobre sus bytes UTF-8 y da aa15457d671c87e3ebd6367a0ed022b9. Un programa que guarde el texto en Latin-1 (ISO-8859-1) obtendrá 2fca8f2d3befb163ae8c4fe9d1b40d88 para la misma palabra.
La misma entrada, abc, con los otros algoritmos:
| Algoritmo | Hash de abc |
|---|---|
| SHA-1 | a9993e364706816aba3e25717850c26c9cd0d89d |
| SHA-256 | ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad |
Seguridad: para qué sirve MD5 y para qué no
Sí sirve: para comprobar que un archivo llegó sin corromperse, encontrar archivos duplicados, crear claves de caché e identificadores sin fines de seguridad.
No sirve: para contraseñas, firmas digitales, certificados ni para demostrar que nadie ha modificado un archivo para engañarte. Los ataques de colisión prácticos contra MD5 son públicos desde 2004. Un atacante puede fabricar dos archivos distintos con el mismo MD5.
Las contraseñas necesitan un hash lento. Incluso SHA-256 es demasiado rápido para contraseñas. Usa bcrypt, scrypt o Argon2, que están diseñados para frenar los intentos de adivinarlas. Un hash MD5 simple de una contraseña, como 5f4dcc3b5aa765d61d8327deb882cf99 (la palabra “password”), lo reconoce al instante cualquier web de búsqueda de hashes.
Otras formas de obtener un hash MD5
Linux. md5sum file.zip muestra el hash y el nombre del archivo. echo -n hello | md5sum calcula el hash de un texto. Si quitas -n, también se incluye el salto de línea.
macOS. md5 file.zip, o md5 -s hello para un texto.
Windows. certutil -hashfile file.zip MD5 en el Símbolo del sistema, o Get-FileHash file.zip -Algorithm MD5 en PowerShell.
Python. hashlib.md5(b'hello').hexdigest() devuelve 5d41402abc4b2a76b9719d911017c592.
Node.js. require('crypto').createHash('md5').update('hello').digest('hex') da el mismo valor.
Herramientas relacionadas
¿Necesitas una contraseña y no un hash? Usa el generador de contraseñas seguras. Para identificadores únicos, el generador de UUID es mejor opción que calcular el hash de datos aleatorios. Para codificar datos binarios como texto, consulta decodificar y codificar Base64.