Generador de Hash MD5 en Línea - Herramienta Gratuita de Cifrado MD5
Genere hashes MD5 al instante con nuestra herramienta en línea gratuita. El procesamiento del lado del cliente garantiza la privacidad. Perfecto para verificaciones de integridad de datos y verificación de archivos.
Generador de Hash MD5
Documentación
¿Qué es un generador de hash MD5?
Un generador de hash MD5 es una herramienta que convierte cualquier texto en un código de longitud fija llamado hash MD5. MD5 son las siglas de Message-Digest Algorithm 5, una función hash publicada en 1992. Si se le da una palabra, una frase o un archivo entero, siempre produce el mismo resultado de 32 caracteres, y hasta un cambio mínimo en la entrada produce un resultado completamente distinto. Esta herramienta ejecuta el algoritmo directamente en el navegador mediante JavaScript, por lo que el texto escrito nunca se envía a un servidor.
Cómo funciona el hash MD5
MD5 es una función unidireccional. Toma una entrada de cualquier longitud y produce una salida de tamaño fijo llamada hash o resumen. «Unidireccional» significa que el proceso no se puede invertir: no existe ningún método para reconstruir el texto original solo a partir del hash.
El algoritmo procesa los datos en las siguientes etapas:
- El mensaje se convierte en bytes y se rellena hasta que su longitud queda 64 bits por debajo de un múltiplo de 512 bits.
- Se añade un campo de 64 bits que registra la longitud original del mensaje, de modo que la longitud total sea un múltiplo de 512 bits.
- Cuatro números de 32 bits se fijan en valores iniciales establecidos.
- El mensaje rellenado se divide en bloques de 512 bits. Cada bloque pasa por cuatro rondas de 16 operaciones, es decir, 64 operaciones por bloque. Cada operación mezcla los datos del bloque con los cuatro números en curso mediante funciones bit a bit, sumas y rotación de bits.
- Una vez procesados todos los bloques, los cuatro números de 32 bits se unen y se escriben como dígitos hexadecimales.
El resultado siempre tiene 128 bits de longitud y se muestra como 32 caracteres hexadecimales (0-9 y a-f), porque cada byte de la salida de 128 bits se escribe como dos dígitos hexadecimales.
Una función hash se considera segura cuando tiene tres propiedades: la misma entrada siempre da la misma salida, es impracticable encontrar una entrada que produzca un hash elegido, y es impracticable encontrar dos entradas distintas que produzcan el mismo hash. MD5 aún conserva la primera propiedad, pero las otras dos se han roto, como se explica más adelante.
Ejemplo de hash MD5
Al aplicar MD5 a la palabra «hello» se obtiene:
1Input: hello
2Output: 5d41402abc4b2a76b9719d911017c592
3Según el estándar MD5, una cadena vacía también tiene un hash fijo que no está vacío, porque el relleno y el campo de longitud siguen pasando por el algoritmo. Esta herramienta no muestra ningún resultado mientras el cuadro de entrada está vacío.
1Input: (empty string)
2Output: d41d8cd98f00b204e9800998ecf8427e
3Cambiar un solo carácter, por ejemplo poner en mayúscula la primera letra para obtener «Hello», produce una cadena de 32 caracteres totalmente distinta. Esto se llama efecto avalancha: pequeños cambios en la entrada causan cambios grandes e impredecibles en la salida.
Cómo usar este generador de hash MD5
- Escriba o pegue texto en el cuadro de entrada. La herramienta calcula el hash de los bytes UTF-8 del texto y acepta hasta 1.000.000 de caracteres.
- El hash aparece automáticamente debajo del cuadro y se actualiza a medida que cambia el texto. No hace falta pulsar ningún botón aparte.
- Haga clic en «Copiar» para copiar el hash de 32 caracteres al portapapeles.
- Bajo el resultado aparece una pequeña barra de color, generada a partir de una parte del hash, como comprobación visual rápida de que dos hashes son distintos.
Como el cálculo se realiza en el propio motor de JavaScript del navegador, la página no necesita conexión a internet una vez cargada, y el texto escrito no se transmite a ningún lugar.
Usos habituales de los hashes MD5
- Comprobar que un archivo descargado no se dañó durante la transferencia, comparando su hash con un valor publicado.
- Crear claves de búsqueda o identificadores de caché para datos, ya que un hash es un sustituto corto y de tamaño fijo de un valor más largo.
- Detectar archivos duplicados comparando hashes en lugar del contenido completo de los archivos.
- Sistemas de control de versiones y de compilación, que usan hashes para detectar si un archivo ha cambiado.
MD5 no es adecuado para almacenar contraseñas, generar firmas digitales ni ningún otro caso en el que un atacante pueda intentar falsificar o invertir el hash. Los motivos se explican en la sección siguiente.
Historia de MD5
Ronald Rivest, un criptógrafo estadounidense, diseñó MD5 como una extensión de su algoritmo anterior MD4. La especificación se publicó como RFC 1321 en abril de 1992, y MD5 pasó a usarse ampliamente para sumas de verificación y, durante un tiempo, con fines de seguridad.
Las debilidades de la función de compresión interna de MD5 se describieron por primera vez en 1993, y en 1996 se mostró una colisión de esa función. En 2004, un equipo dirigido por la criptógrafa Xiaoyun Wang publicó dos entradas distintas que producen el mismo hash MD5, un fallo llamado colisión. En 2008, otro grupo de investigadores usó un ataque de colisión para crear un certificado fraudulento de autoridad de certificación en el que confiaban todos los navegadores web comunes. Estos resultados llevaron a los organismos de normas de seguridad a dejar de recomendar MD5 para cualquier uso en el que importe la falsificación.
Debilidades de seguridad de MD5
- La resistencia a colisiones está rota. Es computacionalmente factible construir dos entradas distintas con el mismo hash MD5.
- La velocidad juega en su contra con las contraseñas. MD5 se diseñó para calcularse con rapidez, lo cual es útil para sumas de verificación pero malo para almacenar contraseñas, ya que permite a un atacante probar miles de millones de intentos por segundo en equipos corrientes.
- El mejor ataque de preimagen publicado es solo un poco más rápido que probar todas las entradas posibles, así que recuperar una entrada exacta a partir de un hash sigue siendo impracticable, pero esto por sí solo no hace que MD5 sea adecuado para usos sensibles a la seguridad.
Por estos problemas, MD5 ya no es aceptable para firmas digitales y no es adecuado para almacenar contraseñas, certificados SSL/TLS ni ninguna aplicación en la que alguien pueda intentar deliberadamente producir un hash coincidente.
Alternativas a MD5
- SHA-256, de la familia SHA-2, produce un hash de 256 bits y no se conoce ningún ataque práctico de colisión.
- SHA-3, un estándar más reciente basado en el algoritmo Keccak, que complementa la familia SHA-2.
- BLAKE2, una función hash rápida cuya seguridad se considera comparable a la de SHA-3.
- Bcrypt, scrypt o Argon2, diseñados específicamente para almacenar contraseñas, ya que son deliberadamente lentos y resistentes a los intentos acelerados por hardware.
Preguntas frecuentes
¿Para qué se usa MD5 hoy?
Sobre todo para tareas ajenas a la seguridad, como comprobaciones de integridad de archivos, deduplicación y claves de caché. Ya no se recomienda para contraseñas, firmas ni certificados.
¿Se puede revertir un hash MD5 para obtener el texto original?
No. MD5 es una función unidireccional, así que no existe ningún cálculo que convierta un hash de nuevo en su entrada. Un atacante sí puede adivinar entradas probables y calcular el hash de cada una para comprobar si coincide, y por eso MD5 no es seguro para contraseñas.
¿Por qué MD5 no es seguro para almacenar contraseñas?
Como se calcula muy rápido, un atacante con hardware moderno puede probar enormes cantidades de contraseñas por segundo. Algoritmos creados con ese fin, como bcrypt, scrypt o Argon2, son deliberadamente lentos para resistir esto.
¿Cuánto mide un hash MD5?
Siempre 128 bits, mostrados como 32 caracteres hexadecimales, sin importar si el texto de entrada es largo o corto.
¿Pueden dos entradas distintas producir el mismo hash MD5?
Sí. Esto se llama colisión, y desde 2004 los investigadores han demostrado métodos prácticos para construir esos pares. Es el motivo principal por el que MD5 ya no se considera seguro.
¿Esta herramienta envía el texto escrito a un servidor?
No. El hash lo calcula JavaScript ejecutándose en el navegador, y la entrada nunca sale del dispositivo.
¿Cuál es la diferencia entre MD5 y SHA-256?
Ambas son funciones hash, pero SHA-256 produce un hash más largo, de 256 bits, y no tiene ningún ataque práctico de colisión conocido, mientras que la resistencia a colisiones de MD5 está rota. SHA-256 es la mejor opción siempre que la seguridad importe.
Referencias
- Rivest, R. RFC 1321: The MD5 Message-Digest Algorithm. RFC Editor, 1992. RFC 1321 — resumen de 128 bits; relleno hasta 448 mod 512 más una longitud de 64 bits; cuatro rondas de 16 operaciones; MD5 como extensión de MD4; valor de prueba para la cadena vacía.
- Turner, S.; Chen, L. RFC 6151: Updated Security Considerations for the MD5 Message-Digest and the HMAC-MD5 Algorithms. RFC Editor, 2011. RFC 6151 — MD5 publicado en 1992; pseudocolisiones de la función de compresión en 1993, una colisión de la función de compresión en 1996, colisiones completas en 2004; el mejor ataque de preimagen tiene una complejidad de 2^123,4, más rápido que la búsqueda exhaustiva; ya no es aceptable donde se requiere resistencia a colisiones, como en las firmas digitales.
- Wang, X.; Feng, D.; Lai, X.; Yu, H. Collisions for Hash Functions MD4, MD5, HAVAL-128 and RIPEMD. IACR Cryptology ePrint Archive, 2004/199. ePrint 2004/199 — el resultado de colisión de 2004 para MD5.
- Sotirov, A.; Stevens, M.; et al. MD5 considered harmful today: Creating a rogue CA certificate. 2008. Certificado de CA fraudulento — un certificado de CA fraudulento en el que confiaban todos los navegadores web comunes, creado con una colisión de MD5.
- National Institute of Standards and Technology. FIPS 202: SHA-3 Standard. FIPS 202 — las funciones SHA-3 se basan en Keccak y complementan la familia SHA-2.