Almacenar password en base de datos
Tenemos dos opciones:
- hash
- criptografía
Aunque pudiera parecer que la segunda es mejor porque es irrompible, es realmente mejor la primera porque es irreversible mientras que la segunda no, o mejor aún, una unión de ambas.
El proceso que voy a seguir será:
- Crear salt almacenado en la base de datos
- Crear pepper en archivo de configuración del proyecto
- Definir factor de trabajo para iterar ese
n
número de veces - Juntar salt, pepper y contraseña y aplicar
n
veces el hash - [Extra] Si queremos ser aún más seguros, podemos encriptar el hash con un algoritmo criptográfico
La longitud de las contraseñas es más importante que su complejidad.
3 algoritmos de hash que podemos usar de mejor a peor:
- argon
- bcrypt
- scrypt