什么是 Bcrypt
Bcrypt 是一种基于 Blowfish 加密算法的密码哈希函数。Bcrypt 通过增加计算成本和盐值(salt)的使用,使得攻击者难以通过暴力破解和预计算的哈希表(彩虹表)来获取密码。
Bcrypt与md5
- Bcrypt:更安全,使用盐值和可调整的工作因子,增加计算复杂度,从而抵御暴力破解和彩虹表攻击。
- MD5:不适合密码存储,易受彩虹表攻击和碰撞攻击(即找到两个不同输入却产生相同哈希值)。
如何使用
1.安装
npm install bcrypt
2.引入
const bcrypt=require('bcrypt');
3.加密
//密码加密
function hashPasswordSync(password) {
// 生成盐值
const salt = bcrypt.genSaltSync(saltRounds);
// 哈希密码
const hashedPassword = bcrypt.hashSync(password, salt);
return hashedPassword;
}
const password = '123456';
const hashedPassword = hashPasswordSync(password);
console.log('加密密码:', hashedPassword);
4.解密
//密码解密
function verifyPasswordSync(password, hashedPassword) {
return bcrypt.compareSync(password, hashedPassword);
}
const isPasswordCorrect = verifyPasswordSync('123456', hashedPassword);
console.log('密码验证:', isPasswordCorrect);