我想使用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
参数?既然哈希是从盐值生成的,为什么比较明文密码不涉及散列时使用的原始盐值呢?