要验证使用随机盐生成的密码哈希,您可以使用bcryptjs或bcrypt库来进行比较操作。以下是使用bcryptjs和bcrypt分别验证密码哈希的代码示例:
使用bcryptjs库:
const bcrypt = require('bcryptjs');
// 生成密码哈希
const password = 'mypassword';
const salt = bcrypt.genSaltSync(10);
const hash = bcrypt.hashSync(password, salt);
// 验证密码哈希
const isMatch = bcrypt.compareSync(password, hash);
console.log(isMatch); // true
使用bcrypt库:
const bcrypt = require('bcrypt');
// 生成密码哈希
const password = 'mypassword';
const saltRounds = 10;
bcrypt.genSalt(saltRounds, function (err, salt) {
bcrypt.hash(password, salt, function (err, hash) {
// 验证密码哈希
bcrypt.compare(password, hash, function (err, isMatch) {
console.log(isMatch); // true
});
});
});
无论您选择使用bcryptjs还是bcrypt库,验证密码哈希的过程是相同的。首先,您需要使用相同的盐值对原始密码进行哈希,然后将生成的哈希与存储的密码哈希进行比较。如果两者匹配,那么密码是有效的。