Generador de Hash MD5
El hash MD5 del texto The quick brown fox jumps over the lazy dog es 9e107d9d372bb6826bd81d3542a419d6. MD5 produce una salida fija de 128 bits (32 caracteres hex) a partir de cualquier entrada. Es rápido, ampliamente soportado y criptograficamente roto para propositos de seguridad desde 2004.
Resultado del Hash
9e107d9d372bb6826bd81d3542a419d6
Puedes verificar esto en cualquier lugar:
# Linux / macOS
echo -n "The quick brown fox jumps over the lazy dog" | md5sum
# Alternativa macOS
echo -n "The quick brown fox jumps over the lazy dog" | md5
# Python
import hashlib
hashlib.md5(b"The quick brown fox jumps over the lazy dog").hexdigest()
# Node.js
const crypto = require('crypto');
crypto.createHash('md5').update('The quick brown fox jumps over the lazy dog').digest('hex');
La bandera -n en echo suprime el salto de línea final. Sin ella, estarias hasheando un string diferente y obteniendo un resultado diferente.
Por Que MD5 Esta Criptograficamente Roto
El ataque fundamental es una colisión: dos entradas diferentes que producen el mismo hash MD5. El articulo de Xiaoyun Wang de 2004 demostro que esto se podia lograr con una cantidad razonable de computo. Para 2008, el ataque era lo suficientemente práctico como para que un equipo de investigadores lo usara para falsificar un certificado de una Autoridad de Certificación. Generaron un par de solicitudes de firma de certificados que colisionaban en MD5, hicieron que una CA legitima firmara una, y obtuvieron una firma válida que también cubría el certificado malicioso que habian preparado. Esto les permitio emitir certificados SSL de confianza para cualquier dominio.
El malware Flame en 2012 uso la misma técnica para hacer que las actualizaciones maliciosas de Windows parecieran firmadas por Microsoft. La colisión se calculo en un cluster, pero la técnica estaba probada.