cv.cm

Conocimientos · Texto, datos y seguridad

MD5 vs SHA-256: ¿cuál es la diferencia?

4 min de lectura

Respuesta corta

MD5 y SHA-256 son funciones hash que convierten cualquier entrada en una huella de longitud fija: 128 bits en MD5 y 256 bits en SHA-256. MD5 está roto en cuanto a seguridad porque un atacante puede crear dos archivos distintos con el mismo hash. SHA-256 no tiene ataques prácticos conocidos y es la opción por defecto para firmas y comprobaciones de integridad. MD5 sigue siendo aceptable para detectar corrupción accidental, y ninguno de los dos debe guardar contraseñas directamente.

Abrir Generador de hash

Qué hace una función hash

Un hash criptográfico toma una entrada de cualquier tamaño y devuelve un resumen (digest) de tamaño fijo. La misma entrada siempre da el mismo resumen, un cambio de un solo carácter da uno completamente distinto, y el resumen no se puede convertir de vuelta en la entrada.

EntradaMD5SHA-256
abc900150983cd24fb0d6963f7d28e17f72ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad
Cadena vacíad41d8cd98f00b204e9800998ecf8427ee3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Un hash seguro debe resistir tres ataques: encontrar una entrada para un resumen dado (preimagen), encontrar una segunda entrada con el mismo resumen que una dada (segunda preimagen) y encontrar dos entradas cualesquiera con el mismo resumen (colisión). Las colisiones son las más fáciles; para un hash ideal de n bits requieren unos 2^(n/2) intentos debido a la paradoja del cumpleaños.

MD5, SHA-1, SHA-256 y SHA-3 comparados

AlgoritmoTamaño del resumenLongitud hexEstado
MD5 (1992)128 bits32Colisiones prácticas desde 2004; roto para seguridad
SHA-1 (1995)160 bits40Primera colisión pública en 2017; NIST prevé retirarlo antes de 2030
SHA-256 (SHA-2, 2001)256 bits64Seguro; estandarizado en FIPS 180-4
SHA-512 (SHA-2)512 bits128Seguro; a menudo más rápido que SHA-256 en CPU de 64 bits
SHA3-256 (2015)256 bits64Seguro; diseño interno distinto, estandarizado en FIPS 202

SHA-256 es un miembro de la familia SHA-2. «SHA-2» y «SHA-256» se usan a menudo como sinónimos, pero SHA-224, SHA-384 y SHA-512 también son funciones SHA-2.

Cómo se rompieron MD5 y SHA-1

En 2004 Xiaoyun Wang y sus colegas publicaron colisiones de MD5 encontradas en horas. Trabajos posteriores lograron colisiones de prefijo elegido, en las que el atacante parte de dos archivos distintos con sentido y añade datos hasta que los hashes coinciden. En 2008 unos investigadores lo usaron para crear un certificado de autoridad de certificación fraudulento, y el malware Flame, descubierto en 2012, usó una colisión de MD5 para falsificar un certificado de firma de código de Microsoft. RFC 6151 establece que MD5 no debe usarse donde se requiera resistencia a colisiones, como en las firmas digitales.

Después cayó SHA-1. En 2017 el proyecto SHAttered de Google y el CWI de Ámsterdam publicó dos archivos PDF distintos con el mismo hash SHA-1, y en 2020 se demostró una colisión de prefijo elegido en SHA-1. Git, los certificados TLS y la firma de código ya han migrado o están migrando a SHA-256.

Los ataques de preimagen contra MD5 siguen sin ser prácticos. Que esté roto significa que un atacante puede fabricar pares de archivos que colisionan, no que se pueda revertir cualquier MD5 existente.

Cuándo MD5 sigue valiendo y cuándo no

Uso¿Es aceptable MD5?Por qué
Detectar corrupción accidental en una descarga o copiaSíLos errores aleatorios de bits no producen colisiones
Deduplicación o claves de caché dentro de tu propio sistemaNormalmenteVale, salvo que un atacante controle las entradas
Verificar una descarga frente a un mirror maliciosoNoUn atacante puede preparar un archivo que colisione; usa SHA-256
Firmas digitales y certificadosNoLos ataques de colisión falsifican firmas
Guardar contraseñasNoSe calcula demasiado rápido; lo mismo vale para SHA-256

Si puedes elegir, elige SHA-256. Está disponible en todas partes, tiene aceleración por hardware en las CPU modernas y evita tener que discutir si un uso concreto es sensible a colisiones.

Las contraseñas necesitan hashes lentos y con sal

Los hashes de uso general están diseñados para ser rápidos. Una sola GPU moderna puede calcular miles de millones de hashes MD5 o SHA-256 por segundo, así que una tabla filtrada de hashes SHA-256 de contraseñas sin sal puede atacarse con enormes listas de palabras, y las contraseñas idénticas aparecen como hashes idénticos.

Las funciones de hash de contraseñas resuelven ambos problemas. Añaden una sal aleatoria única por usuario para que contraseñas idénticas den hashes distintos, y son deliberadamente lentas y, en los diseños más recientes, exigentes en memoria (memory-hard), de modo que las GPU ganan poco:

  • Argon2id: ganador de la Password Hashing Competition de 2015 y la primera opción habitual para sistemas nuevos.
  • scrypt: memory-hard y ampliamente disponible.
  • bcrypt: décadas de uso; ten en cuenta que solo lee los primeros 72 bytes de una contraseña.
  • PBKDF2 con un número de iteraciones alto: aceptable donde se exigen algoritmos validados por FIPS.

Preguntas frecuentes

¿Se puede descifrar un hash MD5?

No. Un hash no es cifrado y no tiene ninguna clave para revertirlo. Los «descifradores de MD5» en línea buscan el hash en tablas de cadenas comunes ya calculadas, por eso las entradas cortas o comunes se encuentran enseguida.

¿SHA-256 es seguro en 2026?

Sí. No se conoce ningún ataque práctico de colisión ni de preimagen contra SHA-256, y NIST lo sigue aprobando. Su resistencia a colisiones de 2^128 está muy por encima de la capacidad de cálculo actual.

¿Por qué los sitios web siguen publicando sumas MD5?

Detectan descargas incompletas o dañadas, que es el problema más habitual. Frente a un archivo manipulado solo sirven si la suma de verificación procede de una fuente de confianza y usa SHA-256 o algo mejor.

¿SHA-256 sirve para hashear contraseñas?

Por sí solo, no. Es rápido y no lleva sal por defecto, así que los hashes filtrados pueden romperse a miles de millones de intentos por segundo. Usa Argon2id, scrypt o bcrypt.

Todos los artículos