这可能是因为bcrypt的版本问题。bcrypt通常会在每次哈希密码时添加随机“盐”,以增加其安全性。但是,较早的bcrypt版本可能会在每次哈希密码时使用相同的盐。因此,如果您升级到新版本的bcrypt,则可以解决此问题。
示例代码(使用Node.js中的bcrypt):
const bcrypt = require('bcrypt');
const saltRounds = 10;
// 生成哈希密码
bcrypt.hash('myPassword', saltRounds, (err, hash) => {
if (err) {
console.error(err);
} else {
console.log(hash);
}
});
// 校验密码
bcrypt.compare('myPassword', hash, (err, result) => {
if (err) {
console.error(err);
} else {
console.log(result); // true
}
});