MD5 vs SHA-256: ¿Cuál es la Diferencia Real?
Tanto MD5 como SHA-256 producen una huella digital de tamaño fijo de cualquier entrada, pero cuentan historias muy distintas sobre seguridad. Este artículo contrasta ambos, muestra por qué uno sigue usándose y por qué el otro está en desuso, y te ayuda a elegir la herramienta correcta para checksums frente a seguridad.
¿Qué es realmente un hash?
Un hash es una función unidireccional: la misma entrada siempre produce la misma salida (una huella digital), pero no puedes recuperar la entrada desde la huella. MD5 genera 128 bits; SHA-256 genera 256 bits. Esa diferencia de ancho sustenta la mayoría de las diferencias prácticas entre ellos.
¿Por qué la resistencia a colisiones es lo decisivo?
Una colisión son dos entradas distintas que dan el mismo hash. MD5 sufre ataques prácticos que hacen barato encontrar colisiones, así que es inaceptable para cualquier cosa crítica en seguridad. SHA-256 sigue siendo resistente, por eso los sistemas modernos lo eligen.
¿Por qué MD5 aún aparece hoy?
MD5 es rápido y aún aparece en checksums para verificar descargas, integraciones legadas y deduplicación. Esto está bien cuando no hay un actor malicioso. En el momento en que un atacante pudiera elegir ambas entradas, MD5 queda descartado.
¿Cuáles son las compensaciones de velocidad y recursos?
MD5 es más rápido y ligero, útil para hashing de alto volumen no adversarial. SHA-256 cuesta más CPU, pero lo paga con un margen de seguridad mucho mayor. Para aplicaciones modernas, el costo extra rara vez es un cuello de botella real.
¿Cómo elegir la función hash correcta?
Para checksums sin adversario, cualquiera funciona. Para contraseñas, hashing, firmas o cualquier cosa crítica para la integridad, elige una función lenta y resistente a colisiones. Genera checksums para cualquier entrada con el generador de hash, que admite MD5, SHA-1, SHA-256 y SHA-512.