Generador de Hash MD5

Genera hash MD5 de cualquier texto

Texto de entrada

Se ejecuta localmente · Es seguro pegar secretos

Hash MD5

El hash MD5 aparecerá aquí…

¿Qué es el hashing MD5?

MD5 (Message-Digest Algorithm 5) es una función hash criptográfica que produce un resumen fijo de 128 bits (16 bytes) a partir de cualquier entrada, independientemente de su tamaño. Publicada en 1992 por Ronald Rivest como RFC 1321, MD5 fue diseñada como sucesora más rápida de MD4 y se convirtió rápidamente en una de las funciones hash más utilizadas en internet. El algoritmo procesa la entrada en bloques de 512 bits a través de cuatro rondas de 16 operaciones cada una, usando una función no lineal distinta por ronda, para producir una huella hexadecimal de 32 caracteres.

Una función hash es una transformación unidireccional: dado un valor de entrada, puedes calcular el hash de forma inmediata, pero conociendo solo el hash no puedes recuperar la entrada original. Incluso un cambio de un solo bit en la entrada produce un resumen completamente diferente — una propiedad llamada efecto avalancha. MD5 proyecta un espacio de entrada infinito en un espacio de salida fijo de 128 bits, por lo que las colisiones (dos entradas diferentes que producen el mismo hash) están matemáticamente garantizadas, pero una función hash segura hace que encontrarlas sea computacionalmente inviable.

Desde 2004, investigadores han demostrado ataques de colisión prácticos contra MD5, lo que significa que ya no se considera seguro para firmas digitales, certificados ni ningún contexto donde se requiera resistencia a colisiones. Sin embargo, MD5 sigue siendo ampliamente utilizado para propósitos no relacionados con la seguridad: verificar la integridad de archivos tras descargas, generar claves de caché, deduplicar contenido y crear identificadores deterministas a partir de cadenas. Para estas aplicaciones, la velocidad del algoritmo y el soporte ubicuo de bibliotecas lo convierten en una opción práctica. En 2008, Marc Stevens y colegas publicaron un ataque de colisión de prefijo elegido, lo que significa que un atacante puede construir dos documentos con prefijos elegidos arbitrariamente que comparten el mismo resumen. Esta técnica se demostró en el Chaos Communication Congress de 2008 mediante la construcción de un certificado de Autoridad de Certificación falso. El malware Flame de 2012 posteriormente explotó colisiones de prefijo elegido para falsificar un certificado de firma de código de Microsoft, permitiendo que el malware se disfrazara como una actualización legítima de Windows Update. Estos ataques reales confirmaron que el algoritmo está criptográficamente comprometido para cualquier uso que requiera confianza, y no debe usarse cuando un adversario pueda influir en las entradas que se hashean.

¿Por qué usar este generador de MD5?

Genera hashes MD5 de forma instantánea sin instalar nada ni escribir código. Pega tu texto y obtén el resumen hexadecimal de 32 caracteres en tiempo real.

Hashing instantáneo
El resultado se actualiza mientras escribes. Sin clics de botón, sin esperas — el resumen MD5 aparece carácter a carácter conforme modificas la entrada.
🔒
Procesamiento con privacidad primero
Todo el hashing se ejecuta localmente en tu navegador usando JavaScript. El texto de entrada nunca abandona tu dispositivo y nunca se envía a ningún servidor.
📋
Copia con un clic
Copia el hash al portapapeles con un solo clic. Alterna entre salida hexadecimal en minúsculas y mayúsculas para adaptarte al formato que espera tu sistema.
🔍
Sin cuenta requerida
Sin registro, sin inicio de sesión, sin límites de uso. Abre la página y empieza a generar hashes de inmediato. Funciona en cualquier dispositivo con un navegador moderno.

Casos de uso de MD5

Desarrollo frontend
Genera hashes para invalidar caché de recursos estáticos. Añade un resumen MD5 del contenido del archivo a las URLs de CSS y JavaScript para que los navegadores obtengan la versión actualizada cuando el contenido cambie.
Ingeniería backend
Crea claves de caché deterministas a partir de parámetros de consulta complejos o cuerpos de solicitud. Los hashes MD5 producen claves compactas y de longitud fija que funcionan bien con Redis, Memcached y capas de caché CDN.
DevOps y CI/CD
Verifica la integridad de archivos tras transferencias comparando sumas de verificación MD5. Muchos registros de paquetes y repositorios de artefactos publican resúmenes MD5 junto a las descargas para una verificación rápida.
QA y pruebas
Compara hashes MD5 de respuestas de API, volcados de bases de datos o archivos de configuración para detectar cambios inesperados entre ejecuciones de prueba sin comparar el contenido completo.
Ingeniería de datos
Deduplica registros en pipelines ETL calculando hashes MD5 del contenido de las filas. Dos filas con el mismo hash son candidatas a deduplicación, reduciendo costos de almacenamiento y procesamiento.
Aprendizaje y educación
Experimenta con funciones hash para entender las transformaciones unidireccionales, el efecto avalancha y por qué la resistencia a colisiones importa para la seguridad. MD5 es el hash más sencillo y conocido para estudiar.

MD5 vs otros algoritmos de hash

MD5 es el más rápido y produce el resumen más corto de los algoritmos de hash comunes, pero ofrece las garantías de seguridad más débiles. La tabla siguiente compara tamaños de resumen, estándares y casos de uso apropiados para cada algoritmo.

AlgoritmoTamaño del resumenLongitud hexEstándarMejor para
MD5128 bits32 hex chars1992 / RFC 1321Checksums, non-security fingerprints
SHA-1160 bits40 hex chars1995 / RFC 3174Legacy git commits (being replaced)
SHA-256256 bits64 hex chars2001 / FIPS 180-4TLS certificates, blockchain, JWTs
SHA-384384 bits96 hex chars2001 / FIPS 180-4Government systems, higher security margin
SHA-512512 bits128 hex chars2001 / FIPS 180-4Digital signatures, HMAC with large keys
SHA-3256 bits64 hex chars2015 / FIPS 202Post-quantum readiness, backup standard
BLAKE3256 bits64 hex chars2020High-performance checksums, Merkle trees

Cómo funciona MD5

MD5 procesa la entrada a través de una construcción Merkle-Damgard: el mensaje se rellena hasta un múltiplo de 512 bits, se divide en bloques y cada bloque pasa por cuatro rondas de 16 operaciones bit a bit que mezclan la entrada con constantes precomputadas derivadas del seno. El resultado es un estado de 128 bits que se convierte en el resumen final.

Cada ronda aplica una función auxiliar no lineal distinta a tres de las cuatro palabras de estado de 32 bits (A, B, C, D). La ronda 1 usa F(B,C,D) = (B AND C) OR (NOT B AND D) — un selector condicional bit a bit. La ronda 2 usa G(B,C,D) = (B AND D) OR (C AND NOT D) — un selector complementario. La ronda 3 usa H(B,C,D) = B XOR C XOR D — una función de paridad. La ronda 4 usa I(B,C,D) = C XOR (B OR NOT D) — un combinador asimétrico. Estas cuatro funciones garantizan que cada bit de la entrada influya en el resumen de salida, produciendo el efecto avalancha que hace que pequeños cambios en la entrada causen variaciones grandes e impredecibles en el hash resultante.

Input: "hello world"
MD5: 5eb63bbbe01eeed093cb22bb8f5acdc3
(128 bits = 16 bytes = 32 hex characters)

El algoritmo procede en cinco etapas: (1) añadir un bit 1, luego ceros, hasta que la longitud del mensaje sea 448 mod 512; (2) añadir la longitud original del mensaje como un entero de 64 bits en little-endian; (3) inicializar cuatro variables de estado de 32 bits (A, B, C, D) con constantes fijas; (4) procesar cada bloque de 512 bits a través de 64 operaciones usando cuatro funciones no lineales (F, G, H, I), una por ronda de 16 operaciones; (5) sumar el estado resultante al total acumulado y emitir el hash final de 128 bits en orden de bytes little-endian.

Ejemplos de código

Cómo generar hashes MD5 en lenguajes y entornos populares. Ten en cuenta que MD5 no está disponible en la Web Crypto API del navegador — usa una biblioteca o Node.js.

JavaScript (Web Crypto — browser & Node.js)
// MD5 is not available in Web Crypto API (it only supports SHA-*)
// Use a library like 'js-md5' or the Node.js crypto module

// Node.js (built-in crypto)
const crypto = require('crypto')
const hash = crypto.createHash('md5').update('hello world').digest('hex')
console.log(hash) // → "5eb63bbbe01eeed093cb22bb8f5acdc3"

// With Unicode input
crypto.createHash('md5').update('cafe\u0301').digest('hex')
// → "4fad076bae205e95bec9dacea498e2ab"
Python
import hashlib

# Basic MD5 hash
result = hashlib.md5(b'hello world').hexdigest()
print(result)  # → "5eb63bbbe01eeed093cb22bb8f5acdc3"

# Hash a string (must encode to bytes first)
text = 'hello world'
hashlib.md5(text.encode('utf-8')).hexdigest()
# → "5eb63bbbe01eeed093cb22bb8f5acdc3"

# Hash a file
with open('file.bin', 'rb') as f:
    md5 = hashlib.md5()
    for chunk in iter(lambda: f.read(8192), b''):
        md5.update(chunk)
    print(md5.hexdigest())
Go
package main

import (
    "crypto/md5"
    "fmt"
)

func main() {
    data := []byte("hello world")
    hash := md5.Sum(data)
    fmt.Printf("%x\n", hash)
    // → 5eb63bbbe01eeed093cb22bb8f5acdc3
}
CLI (Linux / macOS)
# Using md5sum (Linux) or md5 (macOS)
echo -n "hello world" | md5sum
# → 5eb63bbbe01eeed093cb22bb8f5acdc3  -

# macOS
echo -n "hello world" | md5
# → 5eb63bbbe01eeed093cb22bb8f5acdc3

# Hash a file
md5sum package.json
# → a1b2c3d4e5f6...  package.json

# Using openssl (cross-platform)
echo -n "hello world" | openssl md5
# → MD5(stdin)= 5eb63bbbe01eeed093cb22bb8f5acdc3

Preguntas frecuentes

¿Sigue siendo seguro usar MD5?
No es seguro para aplicaciones sensibles a la seguridad como firmas digitales, certificados TLS o almacenamiento de contraseñas. Se han demostrado ataques de colisión prácticos desde 2004, y los ataques de colisión de prefijo elegido ahora son viables en segundos en hardware convencional. Para usos no relacionados con seguridad — sumas de verificación, claves de caché, deduplicación de contenido — el algoritmo sigue siendo una opción práctica y ampliamente compatible.
¿Cuál es la diferencia entre MD5 y SHA-256?
El algoritmo MD5 produce un resumen de 128 bits (32 caracteres hexadecimales) y es vulnerable a ataques de colisión. SHA-256 produce un resumen de 256 bits (64 caracteres hexadecimales) y no tiene ataques prácticos conocidos. SHA-256 es aproximadamente un 30-40% más lento que el algoritmo anterior en el mismo hardware, pero el margen de seguridad adicional lo convierte en la opción predeterminada para cualquier aplicación donde la verificación de integridad deba resistir manipulaciones adversariales.
¿Puedes revertir un hash MD5 para obtener la entrada original?
No. Esta función hash es unidireccional por diseño — descarta información durante el hashing. Sin embargo, para entradas cortas o comunes, los atacantes pueden usar tablas arco iris (mapeos precomputados de hash a texto plano) o fuerza bruta para encontrar la entrada original. Por eso nunca debe usarse para almacenar contraseñas. Usa bcrypt, scrypt o Argon2 en su lugar.
¿Por qué diferentes herramientas producen a veces hashes MD5 distintos para el mismo texto?
La causa más común son las diferencias de codificación. El algoritmo opera sobre bytes, no caracteres. La cadena 'hello' produce hashes diferentes cuando se codifica como UTF-8 frente a UTF-16 frente a Latin-1. Otro problema frecuente son los saltos de línea al final: echo en la mayoría de shells añade un salto de línea (\n) a menos que uses echo -n. Verifica siempre los bytes exactos que se están hasheando.
¿Cuánto tiempo se tarda en calcular un hash MD5?
El algoritmo es extremadamente rápido. En hardware moderno, procesa datos a 3-6 GB/s en un solo núcleo de CPU. Una GPU puede calcular miles de millones de sumas de verificación por segundo. Esta velocidad es una ventaja para la verificación de archivos, pero una desventaja para el almacenamiento de contraseñas, donde se prefieren algoritmos más lentos (bcrypt, Argon2) precisamente porque resisten los ataques de fuerza bruta.
¿Qué es una colisión MD5 y por qué importa?
Una colisión ocurre cuando dos entradas diferentes producen el mismo resumen hash. En 2004, Xiaoyun Wang demostró la primera colisión práctica contra MD5. Para 2012, el malware Flame explotó una colisión para falsificar un certificado de firma de código de Microsoft. Hoy, las colisiones de prefijo idéntico se pueden calcular en menos de un minuto. Esto hace que el algoritmo no sea apto para ninguna aplicación que dependa de la resistencia a colisiones, como firmas digitales o anclaje de certificados.
¿Debo usar MD5 o CRC32 para sumas de verificación de archivos?
Esta suma de verificación es mejor opción que CRC32 para verificar la integridad de archivos. CRC32 es un código detector de errores de 32 bits diseñado para detectar corrupción accidental en la transmisión, no manipulación intencional. Su pequeño espacio de salida hace que las colisiones sean trivialmente fáciles de construir. MD5 proporciona un resumen de 128 bits con una resistencia a colisiones accidentales mucho mayor. Para escenarios adversariales (verificar descargas de fuentes no confiables), usa SHA-256.