concepto · intermedio · 2 min de lectura
Hashing
El hashing transforma datos de cualquier tamaño en una cadena de longitud fija —el hash— de forma determinista e irreversible, usado para integridad, firmas y almacenamiento seguro de contraseñas.
No requiere conocimientos previos.
Alcance en breve
Cubre
- Hashing as a concept
No cubre
- implementation details
Supone
- The reader understands relevant fundamentals.
Resumen
Un hash es el resultado de aplicar una función hash a un input: siempre produce la misma salida para el mismo input, es computacionalmente rápido, y es irreversible —no podés obtener el input original a partir del hash—. Un buen hash tiene resistencia a colisiones: es computacionalmente inviable encontrar dos inputs distintos con el mismo hash.
Usos principales: verificación de integridad —el hash de un archivo te dice si fue modificado—, almacenamiento de contraseñas —no guardás la contraseña, guardás el hash con salt—, y estructuras de datos como hash tables y blockchains. Los algoritmos más usados: SHA-256, BLAKE3. Para contraseñas: bcrypt, Argon2, scrypt.
Alcance y supuestos
Cubre hashing, su diferencia con cifrado, funciones comunes y aplicaciones.
Modelo mental
Una licuadora. Metés frutas —input— y obtenés un batido —hash—. Con las mismas frutas, siempre sale el mismo batido. Pero del batido no podés reconstruir las frutas originales.
Uso práctico
- ✅ Contraseñas: bcrypt o Argon2.
- ✅ Integridad: SHA-256 para verificar archivos.
- ❌ MD5 y SHA-1 están rotos —no usar para seguridad—.
Ejemplo trabajado: hash de contraseñas con bcrypt
En vez de guardar la contraseña, se guarda bcrypt.hash(password, 10). Al hacer login, se compara con bcrypt.compare(password, hash). Si la base de datos se filtra, el atacante no puede recuperar las contraseñas originales.
Evidencia
- SHA-256 es parte del estándar NIST. Argon2 ganó la Password Hashing Competition en 2015.
Fuentes citadas
- Wikipedia, OWASP (Síntesis, 21-07-2026)