SHA-256 vs MD5
SHA-256 y MD5 son dos funciones hash criptográficas muy usadas, pero con niveles de seguridad radicalmente distintos.
| Longitud del hash | 256 bits (64 caracteres hex) | 128 bits (32 caracteres hex) |
| Familia | SHA-2 (Secure Hash Algorithm) | Message Digest 5 |
| Resistencia a colisiones | Sin colisiones prácticas conocidas | Colisiones demostradas desde 2004 |
| Velocidad de cálculo | Más lento (más seguro) | Muy rápido (menos seguro) |
| Uso recomendado hoy | Firmas digitales, blockchain, integridad de archivos | Checksums no críticos, compatibilidad legacy |
| Publicación | 2001 (NSA / NIST) | 1992 (Ronald Rivest) |
SHA-256 y MD5 son ambos algoritmos de hash: toman una entrada de cualquier tamaño y producen una salida de longitud fija que actúa como huella digital del contenido original. La diferencia fundamental está en su nivel de seguridad y en el año en que fueron diseñados, lo que determina para qué usos siguen siendo válidos hoy.
MD5 (Message Digest Algorithm 5) se publicó en 1992 y produce un hash de 128 bits. Durante años fue el estándar de facto para verificar la integridad de archivos, pero desde 2004 se han demostrado ataques prácticos de colisión: es posible construir dos entradas distintas que generen exactamente el mismo hash MD5. Esto lo invalida para cualquier uso relacionado con seguridad (firmas digitales, certificados, contraseñas), aunque sigue usándose de forma no crítica para detectar corrupción accidental de archivos, donde no hay un adversario intentando falsificar el hash a propósito.
SHA-256, parte de la familia SHA-2 publicada en 2001 por la NSA y estandarizada por el NIST, produce un hash de 256 bits. No se conocen colisiones prácticas contra SHA-256 con el hardware y las técnicas actuales, lo que lo convierte en el estándar recomendado para integridad de archivos, firmas digitales, certificados SSL/TLS y como base de sistemas como Bitcoin. Su coste computacional es mayor que el de MD5, pero para la inmensa mayoría de aplicaciones esa diferencia es insignificante frente a la ganancia real en seguridad.
A la hora de elegir, la recomendación es clara: para cualquier caso donde la seguridad importe (verificar que un archivo descargado no ha sido manipulado por un tercero malicioso, firmar documentos, proteger contraseñas junto a un salt) usa SHA-256 o superior. MD5 solo debería considerarse en sistemas legacy que ya lo requieren por compatibilidad, o en checksums internos donde no existe riesgo de manipulación deliberada. Ninguno de los dos, por cierto, es apropiado para almacenar contraseñas de usuarios sin más: para eso existen funciones específicas como bcrypt o Argon2, diseñadas para ser lentas a propósito y así dificultar los ataques de fuerza bruta.
Herramientas relacionadas
Preguntas frecuentes
¿Puedo seguir usando MD5 para algo?
Sí, para checksums no críticos donde no hay riesgo de manipulación intencionada (por ejemplo, detectar errores de transmisión accidentales), pero nunca para seguridad, firmas o contraseñas.
¿SHA-256 es reversible?
No. Ambos son funciones de un solo sentido: no se puede recuperar el texto original a partir del hash, solo comparar hashes para verificar coincidencia.
¿Cuál es más rápido de calcular?
MD5 es más rápido, pero esa velocidad es precisamente parte de su debilidad frente a ataques de fuerza bruta y colisiones.
Otras comparativas