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.

Volver al resumen del curso