logo
GeekFormat

Hash MD5

Entrada0 caracteres · 0 bytes
示例:
All Hashes (side-by-side)
Computed via Web Crypto API
MD5
32 hex
SHA-1
40 hex
SHA-256
64 hex
SHA-384
96 hex
SHA-512
128 hex

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

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

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

Cómo Usar

  1. Seleccione modo: Texto, Archivo, Por lotes o HMAC-MD5
  2. Configure parámetros: codificación, mayúsculas, agrupación de 8 caracteres
  3. Ingrese texto, cargue archivo o pegue contenido por lotes
  4. Copie el resultado hash para verificación o scripts

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ñas

MD5 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 HMAC

¿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.

术语表

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

AlgoritmoBits de salidaLongitud HexSeguridadVelocidadUso recomendado
MD5128 bits32 caracteres❌ Roto (colisiones/preimagen)ExtremaSumas de comprobación de archivos, deduplicación, claves de caché
SHA-1160 bits40 caracteres❌ Colisiones (2017)RápidoGit, compatibilidad con sistemas heredados
SHA-256256 bits64 caracteres✅ SeguroMedioFirmas digitales, certificados, blockchain
SHA-512512 bits128 caracteres✅ SeguroRápido (64 bits)Escenarios de alta seguridad, derivación de claves
bcrypt-60 caracteres✅ Especializado para contraseñasLento (configurable)Almacenamiento de contraseñas

Cronología de eventos de seguridad MD5

AñoEventoImpacto
1991Ron Rivest diseña MD5 (RFC 1321)Reemplaza a MD4 y se convierte en el algoritmo hash principal
1996Se descubre el primer defecto de pseudocolisión en MD5La comunidad académica comienza a cuestionar la seguridad de MD5
2004El equipo de Wang Xiaoyun demuestra el ataque de colisión MD5La seguridad de las firmas digitales MD5 se rompe completamente
2008El malware Flame falsifica certificados CA mediante colisión MD5NIST desaprueba oficialmente MD5 para firmas digitales
2011NIST SP 800-131A prohíbe oficialmente MD5 para usos de seguridadLos sistemas del gobierno de EE. UU. eliminan gradualmente MD5
2024Se publica un nuevo artículo sobre ataque de preimagenLa última línea de defensa de MD5 (resistencia a preimagen) se rompe

Code Examples

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); // b10a8db164e0754105b7a99be72e3fe5

MD5 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")

Authoritative References