¿Cómo deben guardarse las contraseñas de los usuarios?
Opciones
- Cifradas con AES usando una clave guardada en la app
- Con un hash SHA-256 de una pasada y guardadas tal cual
- Con un hash lento y con salt: Argon2id, bcrypt (Opción correcta)
- En texto plano dentro de una base de datos protegida
Respuesta
Con una función de hash de contraseñas lenta y con salt: Argon2id, bcrypt o scrypt
Por qué
Guarda las contraseñas de modo que, aunque roben la base de datos, el atacante no pueda recuperarlas.
El cifrado es reversible: quien encuentre la clave obtiene todas las contraseñas. Los hashes rápidos como SHA-256 se pueden probar miles de millones de veces por segundo en GPUs.
Las funciones de hash de contraseñas (Argon2id, bcrypt, scrypt) son lentas a propósito y añaden un salt aleatorio, lo que hace carísimo adivinarlas. Para iniciar sesión, aplica el hash al intento y compara.
Recuerda
Contraseñas → Argon2id o bcrypt. Nunca en texto plano, nunca solo SHA-256.