Lección 3
Algoritmos MD5 y SHA
Compara MD5, SHA-1 y la familia SHA-2 para trabajo real de desarrollo.
Distintos algoritmos hash producen resúmenes de distinta longitud y margen de seguridad. Elegir el incorrecto puede romper la interoperabilidad o crear una falsa sensación de seguridad.
MD5 (128 bits)
MD5 es rápido y sigue apareciendo en checksums heredados, claves de caché y herramientas antiguas. No es apropiado para diseños nuevos sensibles a la seguridad porque los ataques de colisión son prácticos. Reserva MD5 para compatibilidad e inspección, no para demostrar integridad fuerte frente a atacantes motivados.
SHA-1 (160 bits)
SHA-1 es mayormente heredado hoy. Git sigue usando un formato de ID de objeto basado en SHA-1, pero muchas plataformas se han alejado de SHA-1 para certificados TLS y firmas. Trata SHA-1 como MD5: útil cuando una especificación lo exige, débil para nuevas garantías de seguridad.
SHA-256, SHA-384, SHA-512 (familia SHA-2)
Estos son los valores predeterminados modernos habituales:
- SHA-256: elección predeterminada para checksums de archivos, direccionamiento de contenido y muchas APIs
- SHA-384 / SHA-512: variantes más fuertes exigidas por algunos estándares y plataformas
Los tres tienen amplio soporte en navegadores a través de la Web Crypto API.
Guía práctica de selección
- Verificar un checksum moderno de descarga → SHA-256
- Coincidir con una herramienta de terceros que aún imprime MD5 → MD5
- Cumplir un documento de compliance que nombra SHA-512 → SHA-512
- Almacenar contraseñas → ninguno de estos por sí solo; usa Argon2, bcrypt o scrypt
Confirma siempre el nombre del algoritmo, salida hex vs Base64 y si el hash cubre bytes crudos o texto UTF-8 antes de comparar resultados.