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.