我想在将数据存储到数据库之前使用node.js bcrypt来哈希密码.
此链接提供文档. https://github.com/kelektiv/node.bcrypt.js
以下是散列密码的示例.
var bcrypt = require('bcrypt'); const saltRounds = 10; const myPlaintextPassword = 's0/\/\P4$$w0rD'; var salt = bcrypt.genSaltSync(saltRounds); var hash = bcrypt.hashSync(myPlaintextPassword, salt); // Store hash in your password DB.
这是检查密码的代码.
// Load hash from your password DB. bcrypt.compareSync(myPlaintextPassword, hash); // true
这是我不明白的.在bcrypt.compareSync
,为什么没有参数salt
?由于散列是从salt生成的,为什么比较明文密码不涉及散列中使用的原始盐?
salt是数据库中字符串bcrypt存储的一部分,请参阅例如答案我是否需要使用bcrypt存储salt?