🍋
Menu
Security

Password Hashing

Hashing de contraseñas (almacenamiento seguro de credenciales)

El proceso de convertir una contraseña en texto plano en un valor hash de longitud fija e irreversible para su almacenamiento, asegurando que incluso si la base de datos se ve comprometida, las contraseñas originales no puedan recuperarse fácilmente.

Detalle técnico

Los algoritmos de hashing de contraseñas deben ser deliberadamente lentos para resistir ataques de fuerza bruta: bcrypt (1999, factor de trabajo ajustable, salida de 184 bits), scrypt (2009, intensivo en memoria, resiste ataques GPU) y Argon2 (2015, ganador de la Password Hashing Competition, configurable en tiempo/memoria/paralelismo). Cada contraseña se combina con un salt aleatorio único antes del hashing para prevenir ataques de tablas arcoíris. El pepper (un secreto del lado del servidor) añade protección adicional. Los hashes criptográficos sin procesar (SHA-256) son inadecuados porque están diseñados para ser rápidos, permitiendo miles de millones de intentos por segundo en GPUs. OWASP recomienda Argon2id como primera opción.

Ejemplo

```
Password hashing comparison:

  bcrypt:  $2b$12$salt22chars..hash31chars..
           Cost factor 12 → ~250ms per hash

  argon2id: $argon2id$v=19$m=65536,t=3,p=4$salt$hash
            Memory: 64MB, Iterations: 3, Parallelism: 4

  Never use: MD5, SHA-256 alone (too fast → brute-forceable)
```

Herramientas relacionadas

Términos relacionados