Lección 4

Errores comunes con hash

Evita el uso incorrecto típico de hashes en aplicaciones y depuración.

Los bugs relacionados con hash suelen venir de comparar la idea correcta con los bytes o el algoritmo incorrecto.

Almacenar contraseñas con MD5 o SHA-256 sin sal

Los hashes rápidos sin sal ni key stretching son vulnerables a tablas arcoíris y adivinación offline. El almacenamiento de contraseñas necesita funciones dedicadas de hash de contraseñas y sales únicas por usuario.

Hashear la representación incorrecta

Estas no son la misma operación:

  • Texto UTF-8 Hello
  • Los bytes ASCII tras recortar espacios
  • Una cadena JSON con distinto orden de claves
  • Un archivo que incluye un salto de línea final

Hashea siempre la secuencia exacta de bytes que usa tu sistema.

Tratar un hash como secreto

Si un atacante sabe que el espacio de entrada es pequeño—contraseñas comunes, IDs secuenciales, claves de config cortas—puede forzar el hash offline. Los hashes protegen comparaciones de integridad, no la confidencialidad de entradas predecibles.

Comparar algoritmos incorrectamente

Un resumen MD5 nunca coincidirá con un resumen SHA-256 de la misma entrada porque los algoritmos difieren. Del mismo modo, hex en mayúsculas y minúsculas suele ser equivalente, pero las representaciones Base64 y hex no son intercambiables sin conversión.

Usar hashes débiles para decisiones de seguridad

Los checksums MD5 están bien para detectar corrupción accidental de archivos. Son una mala elección para firma de código, validación de certificados o evidencia de manipulación frente a un atacante activo.

Volver al resumen del curso