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: