1.使用bcryptjs库将密码进行哈希加密,安装bcryptjs库(哈希加密是单向的,不可逆)
npm install bcryptjs
# 或者
yarn add bcryptjs
2.引入bcryptjs
import bcrypt from "bcryptjs";
3.使用compare方法对比加密的密码和未加密的是否相同
const hashedPassword = "$2a$10$1QIPcVZ/K7yuIDFr5ewsG.vwH6shTLnP/FfLE1AeQ9NEurKYHTAMa";
const userProvidedPassword = "你的输入值";
bcrypt.compare(userProvidedPassword, hashedPassword, function(err, result) {
if (result) {
console.log("密码匹配");
} else {
console.log("密码不匹配");
}
});
4.使用hashSync方法进行哈希加密
const newPassword = "222";
const saltRounds = 10; // 你可以根据需要调整工作因子的值
const hashedPassword = bcrypt.hashSync(newPassword, saltRounds);
saltRounds
表示工作因子的值,它影响哈希的计算强度。通常,10是一个合理的默认值,但你可以根据你的需求选择不同的值。hashedPassword
现在包含了加密后的密码,你可以将其用于保存或传递给后端存储。
💥💥请注意
一旦密码被哈希,通常是不可逆的,因此无法从哈希值中还原原始密码。在验证用户输入的密码时,你应该使用相同的哈希算法对用户提供的密码进行哈希,然后将哈希后的值与之前存储的哈希值进行比较。