Cómo almacenar contraseñas en la base de datos

Tu no. No almacena contraseñas en la base de datos. Usted almacena elhash de contraseña, una cadena generada a partir de la contraseña, pero desde la cual nadie puede volver al valor original de la contraseña.

Usando Node, instalebcrypt:

npm install bcrypt

Requerirlo y definir el valor de las rondas de sal, lo usaremos más adelante:

const bcrypt = require('bcrypt')

const saltRounds = 10

Crea un hash de contraseña

Cree un hash de contraseña usando:

const hash = await bcrypt.hash('PASSWORD', saltRounds)

dóndePASSWORDes la cadena de contraseña real.

Si prefiere las devoluciones de llamada:

bcrypt.hash('PASSWORD', saltRounds, (err, hash) => {

})

Entonces puedes almacenar elhashvalor en la base de datos.

Verifique el hash de la contraseña

Para verificar la contraseña, compárela con el hash almacenado en la base de datos usandobcrypt.compare():

const result = await bcrypt.compare('PASSWORD', hash) 
//result is true or false

Usando devoluciones de llamada:

bcrypt.compare('somePassword', hash, (err, result) => {
  //result is true or false
})