基于npm的bcrypt加密详解

        为了保证密码的安全性,不建议在数据库以 明文 的形式保存用户密码,推荐对密码进行 加密存储。

1.在所需项目中,使用 bcryptjs 对用户密码进行加密,优点:

  • 加密之后的密码,无法被逆向破解
  • 同一明文密码多次加密,得到的加密结果各不相同,保证了安全性

2.安装并配置 bcryptjs 

bcryptjs详见 : bcryptjs - npm

        2.1 在所需项目文件中打开终端写入下面命令安装

npm i bcryptjs

        2.2 导入 bcryptjs 

const bcrypt = require('bcryptjs');

        2.3 同步进行加密及认证

//【同步】
// 赋值随机字符串
// 数值越大 生成的随机字符串复杂度越高
// 数值越小 生成的随机字符串复杂度越低
var salt = bcrypt.genSaltSync(10);
// 对明文加密
var pass = bcrypt.hashSync('123456', salt);
// 验证比对是否正确,返回布尔值表示验证结果 true表示一致,false表示不一致
var isTrue = bcrypt.compareSync('123456', pass);
console.log(pass);
console.log(isTrue);

加盐 ; 盐不同 , 加密出来的密文也不一样 ;多次对同一个明文加密, 加密出来的密文是不一样的 .

        2.4异步进行加密及认证

//【异步加密认证】
//赋值随机字符串
// 数值越大 生成的随机字符串复杂度越高
// 数值越小 生成的随机字符串复杂度越低
bcrypt.getSalt(10,(err,salt)=>{
    //对明文进行加密
    bcrypt.hashSync('123456',salt,(err,pass)=>{
        console.log(pass);
    //验证比对是否正确
    bcrypt.compare('123456',pass,(err,isTrue)=>{
        console.log(isTrue);
        })
    })
})
  • 12
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值