Que es un hash MD5 y SHA-256: guia completa sobre funciones hash criptograficas
Aprende que son los hashes MD5 y SHA-256, como funcionan, para que se usan en seguridad informatica y como generar hashes gratis online.
Que es una funcion hash y para que sirve
Una funcion hash (o funcion resumen) es un algoritmo matematico que toma cualquier cantidad de datos como entrada y produce una cadena de longitud fija como salida. Esa cadena se llama hash, digest o checksum.
Las propiedades fundamentales de una buena funcion hash son:
- Determinista: La misma entrada siempre produce la misma salida. Si hasheas "hola" mil veces, obtienes el mismo hash mil veces.
- Unidireccional: Es practicamente imposible obtener los datos originales a partir del hash. No puedes "deshashear".
- Efecto avalancha: Un cambio minimo en la entrada produce un hash completamente diferente. "hola" y "Hola" generan hashes que no se parecen en nada.
- Resistencia a colisiones: Es extremadamente dificil encontrar dos entradas diferentes que produzcan el mismo hash.
Ejemplo concreto:
| Entrada | Hash SHA-256 |
|---|---|
| hola | b221d9dbb083a7f33428d7c2a3c3198ae925614d70210e28716ccaa7cd4ddb79 |
| Hola | 73f5eeb27da88e00d7b2a3f6c0a0ab456dc5ef8c2ff6fb4c8e78e2d5c23fe6e2 |
| hola (de nuevo) | b221d9dbb083a7f33428d7c2a3c3198ae925614d70210e28716ccaa7cd4ddb79 |
Nota como "hola" y "Hola" (solo cambia la mayuscula) producen hashes totalmente diferentes, pero "hola" repetido da el mismo resultado. Genera tus propios hashes con el generador de hash de NexTools.
MD5: historia, uso actual y por que ya no es seguro
MD5 (Message Digest Algorithm 5) fue creado por Ronald Rivest en 1991 y durante anos fue el estandar para verificar integridad de archivos. Produce un hash de 128 bits (32 caracteres hexadecimales).
Por que MD5 ya no es seguro:
En 2004, investigadores demostraron que era posible generar colisiones MD5 en segundos. Esto significa que dos archivos completamente diferentes pueden tener el mismo hash MD5. En 2008, un equipo uso esta vulnerabilidad para crear un certificado SSL falso. En 2012, el malware Flame uso colisiones MD5 para hacerse pasar por una actualizacion de Windows.
Usos todavia validos de MD5 en 2026:
- Checksums no-criptograficos: Verificar que una descarga no se corrompio durante la transferencia. Un atacante no puede modificar el archivo y mantener el mismo MD5 si el hash se transmite por un canal separado.
- Deduplicacion: Detectar archivos duplicados en un sistema de archivos. La probabilidad de colision accidental es negligible.
- Cache keys: Generar claves rapidas para tablas hash en aplicaciones no-criptograficas.
NUNCA uses MD5 para: Almacenar contrasenas, verificar firmas digitales, o cualquier contexto donde la seguridad sea critica.
SHA-256: el estandar actual de seguridad
SHA-256 (Secure Hash Algorithm 256 bits) es parte de la familia SHA-2, disenada por la NSA y publicada por NIST en 2001. Produce un hash de 256 bits (64 caracteres hexadecimales).
Por que SHA-256 es el estandar en 2026:
- Sin colisiones conocidas: Despues de 25 anos, nadie ha encontrado una colision en SHA-256. El espacio de busqueda es 2^256 posibilidades — mas que la cantidad de atomos en el universo observable.
- Bitcoin y blockchain: SHA-256 es la funcion hash central de Bitcoin. La mineria de Bitcoin consiste en encontrar un nonce que produzca un hash SHA-256 con cierto numero de ceros al inicio. En 2026, la red Bitcoin calcula aproximadamente 600 quintillones de hashes SHA-256 por segundo.
- Certificados SSL/TLS: Todos los certificados HTTPS modernos usan SHA-256 para firmar. Desde 2017, los navegadores rechazan certificados firmados con SHA-1.
- Git: Git usa SHA-1 (migrando a SHA-256) para identificar commits y objetos.
Velocidad: SHA-256 es mas lento que MD5 (aproximadamente 3-4x en software), lo cual es realmente una ventaja para almacenamiento de contrasenas — hace los ataques de fuerza bruta mas costosos.
Comparativa: MD5 vs SHA-1 vs SHA-256 vs SHA-3
Cada funcion hash tiene diferentes caracteristicas:
| Algoritmo | Bits de salida | Longitud hex | Seguro en 2026 | Velocidad relativa |
|---|---|---|---|---|
| MD5 | 128 | 32 chars | No (colisiones en segundos) | Mas rapido |
| SHA-1 | 160 | 40 chars | No (colision demostrada 2017) | Rapido |
| SHA-256 | 256 | 64 chars | Si | Medio |
| SHA-512 | 512 | 128 chars | Si | Medio (mas rapido en 64-bit) |
| SHA-3 | 256/512 | 64/128 chars | Si | Mas lento |
Cuando usar cada uno:
- MD5: Solo para checksums no-criptograficos y deduplicacion
- SHA-1: Evitar. Solo para compatibilidad con sistemas legacy
- SHA-256: Opcion predeterminada para todo uso criptografico
- SHA-512: Cuando necesitas hash mas largo o trabajas en arquitecturas de 64 bits
- SHA-3: Alternativa a SHA-2 con diseno diferente (Keccak). Usar si la regulacion lo exige
Compara los diferentes algoritmos con el generador de hash de NexTools que soporta MD5, SHA-1, SHA-256 y SHA-512.
Usos practicos de los hashes en la vida real
Los hashes estan en mas lugares de lo que imaginas:
1. Almacenamiento de contrasenas. Las bases de datos NUNCA deben guardar contrasenas en texto plano. En su lugar, guardan el hash. Cuando inicias sesion, el sistema hashea tu contrasena y compara con el hash guardado. Para contrasenas, se usan funciones especializadas como bcrypt, scrypt o Argon2 (que agregan "sal" y son intencionalmente lentas).
2. Verificacion de integridad de archivos. Cuando descargas software (Linux ISOs, por ejemplo), el sitio publica el hash SHA-256 del archivo. Despues de descargarlo, calculas el hash localmente y comparas. Si coinciden, el archivo no fue alterado.
3. Firmas digitales. Los documentos firmados digitalmente usan hashes. Se calcula el hash del documento, se cifra con la clave privada del firmante, y se adjunta al documento. El receptor verifica descifrando con la clave publica.
4. Blockchain y criptomonedas. Cada bloque en una blockchain contiene el hash del bloque anterior, creando una cadena inmutable. Modificar un bloque cambiaria su hash, rompiendo la cadena.
5. Control de versiones (Git). Git identifica cada commit, archivo y directorio por su hash SHA-1. Si cambias un byte en un archivo, su hash cambia, y Git lo detecta como modificado.
6. Deteccion de duplicados. Servicios como Google Drive o Dropbox pueden detectar archivos duplicados comparando hashes en vez del contenido completo, ahorrando espacio y ancho de banda.
Como generar hashes: herramientas y codigo
Varias formas de calcular hashes segun tu necesidad:
Opcion 1: Herramienta online. El generador de hash de NexTools calcula MD5, SHA-1, SHA-256 y SHA-512 directamente en tu navegador. Ningún dato sale de tu computadora.
Opcion 2: Terminal.
- Linux/Mac:
echo -n "texto" | sha256sum - MD5:
echo -n "texto" | md5sum - Archivo:
sha256sum archivo.zip - Windows PowerShell:
Get-FileHash archivo.zip -Algorithm SHA256
Opcion 3: JavaScript (Node.js).
const crypto = require('crypto');
const hash = crypto.createHash('sha256').update('texto').digest('hex');
// b221d9dbb083a7f33428d7c2a3c3198ae925614d70210e28716ccaa7cd4ddb79
Opcion 4: Python.
import hashlib
hashlib.sha256(b'texto').hexdigest()
Recuerda: un hash NO es cifrado. Si necesitas cifrar datos para protegerlos, necesitas algoritmos de cifrado como AES. Los hashes son irreversibles por diseno. Consulta nuestra guia sobre Base64 y codificacion si necesitas entender la diferencia entre codificacion, hash y cifrado.
Ataques comunes contra hashes y como protegerte
Conocer los ataques te ayuda a implementar hashes correctamente:
1. Rainbow tables (tablas arcoiris). Son diccionarios pre-computados de hash→texto para millones de contrasenas comunes. Si guardas un hash SHA-256 de "password123" sin sal, un atacante lo encuentra en la tabla en milisegundos. Solucion: Agregar una "sal" (valor aleatorio unico por usuario) antes de hashear: SHA-256(sal + contrasena).
2. Fuerza bruta. Probar todas las combinaciones posibles. Con MD5, una GPU moderna puede probar 10+ mil millones de combinaciones por segundo. Con SHA-256 son ~3 mil millones, y con bcrypt solo ~30,000. Solucion: Usar funciones lentas (bcrypt, Argon2) para contrasenas, y contrasenas largas (12+ caracteres).
3. Ataques de extension de longitud. Afectan a MD5 y SHA-256 cuando se usan directamente como MAC (Message Authentication Code). Solucion: Usar HMAC (Hash-based MAC) en vez de hash directo: HMAC-SHA256(clave, mensaje).
4. Colisiones. Encontrar dos entradas con el mismo hash. Ya es trivial para MD5 y demostrado para SHA-1 (costo: ~$100,000 en 2017). No existe para SHA-256. Solucion: Usar SHA-256 o superior.
El futuro de los hashes: SHA-3 y post-cuantica
La criptografia evoluciona constantemente:
SHA-3 (Keccak). Aprobado por NIST en 2015, SHA-3 usa un diseno completamente diferente a SHA-2 (estructura de esponja vs Merkle-Damgard). No es un reemplazo de SHA-2 (que sigue siendo seguro), sino una alternativa por si alguna vez se encuentra una vulnerabilidad en SHA-2. Algunos protocolos como Ethereum 2.0 usan Keccak-256.
Amenaza cuantica. Los computadores cuanticos podrian usar el algoritmo de Grover para reducir la seguridad de los hashes a la mitad. SHA-256 pasaria de seguridad equivalente a 256 bits a 128 bits, que sigue siendo suficiente. SHA-512 seria equivalente a 256 bits, todavia muy seguro. MD5 y SHA-1 serian aun mas vulnerables. Por esto, migrar a SHA-256+ es prudente incluso sin amenaza cuantica inmediata.
BLAKE3. Un hash mas moderno y extremadamente rapido (hasta 10x mas rapido que SHA-256 en software) que mantiene alta seguridad. Aun no es un estandar NIST pero esta ganando adopcion en 2026, especialmente en almacenamiento de datos y deduplicacion.
Para la mayoria de los usos en 2026, SHA-256 sigue siendo la eleccion correcta. Prueba diferentes algoritmos con el generador de hash de NexTools.
Prueba esta herramienta:
Abrir herramienta→Preguntas frecuentes
Se puede revertir un hash para obtener los datos originales
No. Las funciones hash son matematicamente irreversibles (one-way functions). No existe un algoritmo para calcular los datos originales a partir del hash. La unica opcion es fuerza bruta: probar entradas hasta encontrar una que produzca el mismo hash, lo cual es computacionalmente inviable para datos complejos con SHA-256.
Por que MD5 ya no es seguro pero SHA-256 si
MD5 tiene vulnerabilidades de colision comprobadas: se pueden generar dos documentos diferentes con el mismo hash MD5 en segundos con hardware normal. SHA-256 no tiene colisiones conocidas despues de 25 anos de analisis. El espacio de busqueda de SHA-256 (2^256) es astronimicamente mayor que el de MD5 (2^128).
Que es una sal en el contexto de hashes
Una 'sal' (salt) es un valor aleatorio unico que se agrega a cada contrasena antes de hashearla. Por ejemplo: SHA-256('random123salt' + 'password') produce un hash unico incluso si dos usuarios tienen la misma contrasena. Esto invalida las tablas arcoiris (rainbow tables) y obliga a los atacantes a atacar cada hash individualmente.
Cual es la diferencia entre hash y cifrado
El cifrado es reversible (puedes descifrar con la clave correcta), el hash no. El cifrado protege la confidencialidad (leer datos), el hash protege la integridad (verificar que no se modificaron). Ejemplo: cifras un mensaje para que solo el destinatario lo lea; hasheas un archivo para verificar que no fue alterado durante la descarga.
Cuanto tarda en romperse un hash SHA-256 por fuerza bruta
Con la tecnologia actual, romper SHA-256 por fuerza bruta completa (probar todas las 2^256 combinaciones) tardaria mas tiempo que la edad del universo, incluso usando todas las computadoras del mundo. Sin embargo, si la entrada es una contrasena debil como '123456', un atacante puede encontrarla rapido usando diccionarios. La seguridad depende de la entropia de la entrada.
Bitcoin usa SHA-256, significa que si SHA-256 se rompe Bitcoin colapsa
Parcialmente. Si se encontrara una forma eficiente de generar colisiones SHA-256, afectaria la mineria y la integridad de la blockchain. Sin embargo, las direcciones Bitcoin tambien usan RIPEMD-160 y ECDSA, por lo que romper SHA-256 solo no comprometeria los fondos directamente. La comunidad migraria a un nuevo algoritmo antes de que la amenaza fuera critica.