如何在数据库中存储密码

你不知道您不会在数据库中存储密码。您存储密码哈希,这是从密码生成的字符串,但是没有人可以返回到原始密码值。

使用节点安装bcrypt

npm install bcrypt

需要它,并定义盐值舍入值,稍后我们将使用它:

const bcrypt = require('bcrypt')

const saltRounds = 10

创建密码哈希

使用以下命令创建密码哈希:

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

在哪里PASSWORD是实际的密码字符串。

如果您更喜欢回调:

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

})

然后,您可以存储hash数据库中的值。

验证密码哈希

要验证密码,请使用以下命令将其与数据库中存储的哈希进行比较:bcrypt.compare()

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

使用回调:

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