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óndePASSWORD
es la cadena de contraseña real.
Si prefiere las devoluciones de llamada:
bcrypt.hash('PASSWORD', saltRounds, (err, hash) => {
})
Entonces puedes almacenar elhash
valor 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
})