Hash MD5
Herramienta gratuita de hash MD5 en línea. Modos texto/archivo/por lotes/HMAC-MD5, UTF-8/Latin1, mayúsculas, agrupación de 8 caracteres. ⚠️ MD5 está roto — NO lo use para almacenar contraseñas.
Relacionado
¿Qué es MD5?
MD5 (Message-Digest Algorithm 5) es una función hash de 128 bits diseñada por Ronald Rivest en 1991 (RFC 1321), que produce un resumen hexadecimal fijo de 32 caracteres a partir de una entrada arbitraria. Ampliamente utilizado para firmas digitales, verificación de certificados y almacenamiento de contraseñas, MD5 fue roto por el ataque de colisión de Wang et al. en 2004, y el malware Flame explotó colisiones MD5 para falsificar un certificado CA de confianza en 2008.
**Estado de seguridad**: NIST desaprobó formalmente MD5 para firmas digitales en SP 800-131A (2011). Sin embargo, MD5 sigue siendo útil para escenarios no relacionados con la seguridad: comprobaciones de integridad de archivos contra corrupción accidental, deduplicación de datos y claves de caché. La pregunta clave: ¿se beneficiaría un atacante de crear una colisión? Si no, la velocidad de MD5 es una ventaja.
**Nunca use MD5 para almacenamiento de contraseñas**: MD5 es extremadamente rápido (miles de millones de hashes/segundo en GPU), lo que permite fuerza bruta instantánea en contraseñas comunes. El almacenamiento de contraseñas DEBE usar bcrypt, scrypt o Argon2 — hashes lentos con factores de costo configurables que hacen que la fuerza bruta sea inviable.
**HMAC-MD5 sigue siendo seguro**: aunque el MD5 simple está roto, HMAC-MD5 (código de autenticación de mensajes hash con clave) sigue siendo seguro cuando la clave es desconocida porque la construcción HMAC no depende directamente de la resistencia a colisiones del hash. Se recomienda migrar a HMAC-SHA256.
La herramienta utiliza una implementación MD5 en JavaScript puro (la API Web Crypto ya no admite MD5). Todo el cálculo ocurre localmente en su navegador: los archivos usan lectura incremental fragmentada y nunca se cargan en servidores.
Casos de uso
- Integridad de archivos: calcule MD5 después de descargar para verificar contra sumas de comprobación oficiales
- Generación de resúmenes por lotes para archivos de configuración o notas de versión
- Firma HMAC-MD5 para integración con sistemas heredados
- Deduplicación de datos mediante comparación rápida MD5
- Generación de claves de caché como identificadores únicos cortos
- Aprendizaje: comprender algoritmos hash comparando salidas MD5/SHA-1/SHA-256
Cómo Usar
- Seleccione modo: Texto, Archivo, Por lotes o HMAC-MD5
- Configure parámetros: codificación, mayúsculas, agrupación de 8 caracteres
- Ingrese texto, cargue archivo o pegue contenido por lotes
- Copie el resultado hash para verificación o scripts
Características
- Cuatro modos: Texto, Archivo, Por lotes línea por línea y HMAC-MD5 que cubren escenarios de suma de comprobación comunes
- Codificación UTF-8/Latin1 seleccionable para coincidir con entradas de diferentes sistemas
- Salida en mayúsculas y agrupación de 8 caracteres para legibilidad humana
- Hash fragmentado de archivos: lectura incremental para archivos grandes evita problemas de memoria
- Modo por lotes: cada línea se procesa independientemente con salida original→hash
- Copia de resultados con un clic
Ejemplos de Código
MD5/Hashing in JavaScript (Web Crypto supports SHA, MD5 needs library)
// Note: Web Crypto API does NOT support MD5 (deprecated)
// Use SHA-256 instead for new projects
async function sha256(message) {
const msgBuffer = new TextEncoder().encode(message);
const hashBuffer = await crypto.subtle.digest('SHA-256', msgBuffer);
return Array.from(new Uint8Array(hashBuffer)).map(b => b.toString(16).padStart(2,'0')).join('');
}
sha256('Hello World').then(console.log);
// MD5 in Node.js using crypto module
const crypto = require('crypto');
const md5 = crypto.createHash('md5').update('Hello World').digest('hex');
console.log(md5); // b10a8db164e0754105b7a99be72e3fe5MD5 Hashing in Python
import hashlib
text = 'Hello World'
md5_hash = hashlib.md5(text.encode('utf-8')).hexdigest()
print(md5_hash) # b10a8db164e0754105b7a99be72e3fe5
# File MD5 (chunked for large files)
def md5_file(filepath, chunk_size=8192):
md5 = hashlib.md5()
with open(filepath, 'rb') as f:
while chunk := f.read(chunk_size):
md5.update(chunk)
return md5.hexdigest()
# HMAC-MD5
import hmac
hmac_md5 = hmac.new(b'secret-key', b'Hello World', hashlib.md5).hexdigest()
print(hmac_md5)MD5 Hashing in Java
import java.security.MessageDigest;
import java.nio.charset.StandardCharsets;
public class MD5Example {
public static String md5(String input) throws Exception {
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] hash = md.digest(input.getBytes(StandardCharsets.UTF_8));
StringBuilder sb = new StringBuilder();
for (byte b : hash) sb.append(String.format("%02x", b));
return sb.toString();
}
public static void main(String[] args) throws Exception {
System.out.println(md5("Hello World"));
// b10a8db164e0754105b7a99be72e3fe5
}
}
// Note: Use SHA-256 for new code: MessageDigest.getInstance("SHA-256")Preguntas Frecuentes
¿Para qué se usa comúnmente MD5?
MD5 se usa comúnmente para verificación de integridad de archivos (como verificar descargas), generación rápida de resúmenes, compatibilidad con sistemas heredados, claves de caché y deduplicación de datos en escenarios no relacionados con la seguridad. MD5 produce 128 bits (32 caracteres hexadecimales) y es muy rápido, adecuado para escenarios de verificación con bajos requisitos de seguridad.
¿Cuál es la diferencia entre MD5 y SHA-256?
MD5 produce 128 bits (32 hex) y es muy rápido pero está roto; SHA-256 produce 256 bits (64 hex), es más lento pero no tiene ataques de colisión prácticos y es la opción preferida para usos críticos de seguridad.
Herramienta SHA-256¿Por qué MD5 no es seguro para contraseñas?
MD5 es extremadamente rápido: las GPU modernas pueden calcular miles de millones de hashes por segundo, y las tablas arcoíris descifran rápidamente contraseñas comunes. Para almacenamiento de contraseñas use bcrypt, scrypt o Argon2.
Generador de contraseñasMD5 está roto — ¿todavía puedo usarlo?
Absolutamente NO para seguridad (firmas digitales, contraseñas, TLS). Pero para usos no relacionados con la seguridad (comprobación de corrupción de archivos, deduplicación, claves de caché), MD5 sigue estando bien porque los atacantes no tienen incentivos para crear colisiones.
¿Se pueden "descifrar" los hashes MD5?
MD5 es unidireccional y no se puede revertir matemáticamente, pero las tablas arcoíris y la fuerza bruta pueden recuperar contraseñas débiles en segundos. Esta es la razón por la que MD5 nunca debe usarse para almacenar contraseñas.
¿Los archivos grandes causarán demoras?
No. La herramienta usa lectura incremental fragmentada: los archivos no se cargan completamente en memoria, por lo que incluso archivos de varios GB se procesan sin problemas con una interfaz receptiva.
¿Qué es HMAC-MD5 frente a MD5 simple?
HMAC-MD5 es un hash con clave que requiere una clave secreta. Aunque el MD5 simple está roto, HMAC-MD5 sigue siendo seguro cuando la clave es desconocida (aunque se recomienda migrar a HMAC-SHA256).
Generador HMACGlosario
- Función Hash (Hash Function)
- Una función matemática que mapea entradas de longitud arbitraria a salidas de longitud fija. Las buenas funciones hash proporcionan unidireccionalidad, resistencia a colisiones y efecto avalancha.
- Ataque de Colisión (Collision Attack)
- Encontrar dos entradas distintas que producen la misma salida hash. Las colisiones MD5 fueron demostradas por Wang et al. en 2004, permitiendo falsificar firmas digitales.
- Ataque de Preimagen (Preimage Attack)
- Encontrar una entrada que produzca una salida hash determinada. Es más difícil que las colisiones, pero una nueva investigación de 2024 debilitó significativamente la resistencia a preimagen de MD5.
- Tabla Arcoíris (Rainbow Table)
- Tablas de búsqueda hash→texto plano precalculadas para descifrar rápidamente hashes de contraseñas débiles. El uso de sal (salting) derrota a las tablas arcoíris.
- HMAC (Hash-based Message Authentication Code)
- Código de autenticación de mensajes basado en hash que utiliza una clave secreta para la integridad/autenticación de mensajes. HMAC-MD5 y HMAC-SHA256 son variantes comunes.Generador HMAC
- bcrypt
- Un algoritmo de hash de contraseñas lento con sal incorporada y factor de costo configurable, haciendo que los ataques de fuerza bruta sean prohibitivamente caros.
- Suma de Comprobación (Checksum)
- Un pequeño valor fijo utilizado para verificar la integridad de los datos. MD5, SHA-1, SHA-256 se usan comúnmente como sumas de comprobación para detectar corrupción en la transmisión.
- Efecto Avalancha (Avalanche Effect)
- Un pequeño cambio en la entrada (incluso 1 bit) causa un cambio drástico e impredecible en el hash de salida. MD5 todavía tiene buenas propiedades de avalancha, lo que contribuye a su utilidad continua en comprobaciones no seguras.
- RFC 1321
- El estándar oficial de MD5 presentado al IETF por Ronald Rivest en 1992, describiendo los pasos del algoritmo y vectores de prueba.
- Hash Fragmentado (Chunked Hashing)
- Procesar archivos grandes en bloques en lugar de cargar el archivo completo en memoria, actualizando incrementalmente el estado del hash.
Comparación de algoritmos hash comunes
| Algoritmo | Bits de salida | Longitud Hex | Seguridad | Velocidad | Uso recomendado |
|---|---|---|---|---|---|
MD5 | 128 bits | 32 caracteres | ❌ Roto (colisiones/preimagen) | Extrema | Sumas de comprobación de archivos, deduplicación, claves de caché |
SHA-1 | 160 bits | 40 caracteres | ❌ Colisiones (2017) | Rápido | Git, compatibilidad con sistemas heredados |
SHA-256 | 256 bits | 64 caracteres | ✅ Seguro | Medio | Firmas digitales, certificados, blockchain |
SHA-512 | 512 bits | 128 caracteres | ✅ Seguro | Rápido (64 bits) | Escenarios de alta seguridad, derivación de claves |
bcrypt | - | 60 caracteres | ✅ Especializado para contraseñas | Lento (configurable) | Almacenamiento de contraseñas |
Cronología de eventos de seguridad MD5
| Año | Evento | Impacto |
|---|---|---|
1991 | Ron Rivest diseña MD5 (RFC 1321) | Reemplaza a MD4 y se convierte en el algoritmo hash principal |
1996 | Se descubre el primer defecto de pseudocolisión en MD5 | La comunidad académica comienza a cuestionar la seguridad de MD5 |
2004 | El equipo de Wang Xiaoyun demuestra el ataque de colisión MD5 | La seguridad de las firmas digitales MD5 se rompe completamente |
2008 | El malware Flame falsifica certificados CA mediante colisión MD5 | NIST desaprueba oficialmente MD5 para firmas digitales |
2011 | NIST SP 800-131A prohíbe oficialmente MD5 para usos de seguridad | Los sistemas del gobierno de EE. UU. eliminan gradualmente MD5 |
2024 | Se publica un nuevo artículo sobre ataque de preimagen | La última línea de defensa de MD5 (resistencia a preimagen) se rompe |
Authoritative References
- Comparación segura de cadenas
- Conversor Binario
- Cifrado César
- Código Morse
- Hexadecimal
- Video a Base64
- Base64 a Video
- Imagen a Base64
- Base64 a imagen
- Texto a Base64
- Base64 a texto
- Verificador de hash de archivo
- Archivo a Base64
- Base64 a archivo
- Audio a Base64
- Base64 a Audio
- Cifrar y descifrar AES
- Cifrado y descifrado DES
- Codificador y Decodificador Base32
- Codificar y decodificar Base58
- Codificación Base64
- Decodificación Base64
- Comparador de Base64
- Divisor Base64
- Fusionar Base64 multilínea
- Formato Base64
- Validador de Base64
- Codificación Base64 por lotes
- Decodificador Base64 por lotes
- Limpieza de Base64
- Manejo de padding Base64
- Estadísticas de longitud Base64
- Base64 a Hexadecimal
- Conversor Base64 DataURL
- Convertidor Base64-Hex
- Codificador Base85
- Generador y validador HMAC
- Derivación de Clave PBKDF2
- Hash MD5
- Hash SHA-256
- SHA1 Hash
- Hash SHA512
- Decodificador, Verificador y Generador JWT
- Codificador y decodificador de entidades HTML
- Escape de Unicode
- Codificación URL
- Base64 URL Safe
- MIME Base64
- Ofuscador de Java
- Ofuscador de JS
- Ofuscador de PHP
- Ofuscador de Python