Una función hash criptográfica transforma una entrada arbitraria en una huella de tamaño fijo. Es determinista: la misma entrada produce el mismo digest, mientras que un cambio pequeño debería generar un resultado muy distinto.
Hash, integridad y comparación de huellas: qué puede demostrar realmente un hash
Distingue hash, cifrado y codificación; comprende SHA-256, SHA-3, colisiones y los límites de una huella sin autenticación.
Mostrar el índice
Hashing no es cifrado ni codificación
El cifrado es reversible con una clave. La codificación cambia la representación y está pensada para deshacerse. Un hash, en cambio, no está diseñado para recuperar la entrada original.
Distingue algoritmos modernos y heredados
SHA-256 y SHA-3 son opciones modernas habituales para flujos de integridad. MD5 y SHA-1 siguen presentes en sistemas antiguos, pero tienen debilidades de colisión conocidas y no deben elegirse para diseños nuevos que necesiten resistencia a colisiones.
Un hash igual demuestra igualdad, no origen
Si una fuente de confianza publica una huella a través de un canal de confianza, compararla con tu archivo permite detectar cambios. Pero si un atacante puede sustituir tanto el archivo como el hash mostrado, una comparación simple no demuestra autenticidad. Para eso puede ser necesario un HMAC o una firma digital.
El generador de hash y el comparador de hashes permiten realizar comprobaciones locales. El generador y verificador HMAC muestra la diferencia entre un digest sin secreto y un MAC autenticado.
Las contraseñas necesitan funciones especializadas
Las funciones hash generales son deliberadamente rápidas, lo que también facilita intentos masivos de contraseñas. El almacenamiento de contraseñas utiliza por eso funciones específicas con sal y un coste configurable.
Para elegir entre mecanismos, consulta Cifrado, hashing y HMAC. Para recursos cargados por el navegador, Subresource Integrity aplica directamente la idea de integridad en HTML.
¿Te ha resultado útil este artículo?
Fuentes y referencias
- NIST — FIPS 180-4: Secure Hash Standard (se abre en una pestaña nueva)Página en inglés
- NIST — FIPS 202: SHA-3 Standard (se abre en una pestaña nueva)Página en inglés
- NIST — Policy on Hash Functions (se abre en una pestaña nueva)Página en inglés
- RFC 6151 — Updated Security Considerations for MD5 and HMAC-MD5 (se abre en una pestaña nueva)Página en inglés