Una función hash transforma cualquier dato en una cadena de longitud fija (su "huella digital"). Es una operación de un solo sentido: a partir del hash no se puede recuperar el dato original. Su uso principal es verificar la integridad: comprobar que la información no fue alterada.
Propiedad clave: el efecto avalancha — un cambio mínimo en la entrada produce un hash completamente distinto. Esto permite detectar cualquier modificación, por pequeña que sea.
Propiedades de una buena función hash:
| Propiedad | Significado |
|---|---|
| Determinista | El mismo dato siempre da el mismo hash |
| Longitud fija | La salida mide igual sin importar la entrada |
| Irreversible | No se puede volver al dato original |
| Efecto avalancha | Un cambio mínimo altera todo el hash |
| Resistente a colisiones | Es inviable que dos datos den el mismo hash |
Cómo se usa para integridad:
- Se calcula el hash de un dato (ej. un archivo) en origen.
- Se vuelve a calcular en destino.
- Si coinciden, el dato está intacto; si difieren, fue alterado.
sha256sum archivo.iso # calcula el hash SHA-256 de un archivo
Algoritmos comunes:
- ✅ SHA-256 / SHA-3 → seguros y recomendados.
- ⚠️ MD5 y SHA-1 → obsoletos y rotos (tienen colisiones); no usar para seguridad.
Usos principales:
| Uso | Para qué |
|---|---|
| Verificación de descargas | Confirmar que un archivo no fue manipulado |
| Almacenamiento de contraseñas | Guardar el hash, no la contraseña |
| Firmas digitales | Se firma el hash del documento |
| Blockchain / Git | Enlazar e identificar bloques o commits |
Hash e integridad protegen la "I" de la triada CIA. Este tema conecta con firmas digitales, hashing de contraseñas (bcrypt/Argon2) y con la verificación forense.