node.js 在window平台使用bcrypt完成加盐加密

7 篇文章 0 订阅
1 篇文章 0 订阅

如果你是使用window平台的话 直接安装  bcrypt 是会报错的 得安装其他的一些依赖

当然 我们也可以选择 hi用bcryptjs  替代 反正功能都是一样的

先安装   

npm i node-gyp --save   

不安装上面的的  会报错的 然后在安装

npm i bcryptjs --save    

加盐加密 有俩种使用方法 一种是  同步加密 一种是异步加密

我这里使用的是 koa+mongodb的组合方式

const mongoose=require('mongoose');
const Schema=mongoose.Schema;
const bcrypt=require('bcryptjs');
// 定义集合中每一个字段的规则
const userSchema=new Schema({
    userId:Schema.Types.ObjectId,
    userName:{unique:true,type:String},// 设置用户名唯一的
    password:String,
    createDate:{type:Date,default:Date.now()}
})
// 每次往数据库中保存数据之前
userSchema.pre('save',function (next){  // 使用mongodbd的童鞋 注意 这里不要用箭头函数 否则this指向的就是 不是当前对象 

    // 同步的加密方式
    //  生成salt的迭代次数
     const saltRounds=10;
    //  随机生成salt
     const salt=bcrypt.genSaltSync(saltRounds);
    // 获取hash值
    // var hash=bcrypt.hashSync(this.password,salt);
    //  将生成hash值赋值给密码
    this.password=hash;  //加密之后的数字赋值给用户提交的密码
     next();

    // 异步加密方式
    bcrypt.genSalt(10,(err,salt)=>{
        console.log(salt);
        if(err) return next(err);
        bcrypt.hash(this.password,salt,(err,hash)=>{
            console.log(err,hash)
            if(err) return next(err);
            this.password=hash;
            next();
        });
    }); 

})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yunchong_zhao

帮到你了,请作者喝杯矿泉水可好

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值