Express下采用bcryptjs进行密码加密

前几天利用Express开发了个小项目,开发登录注册模块时,采用bcryptjs进行密码加密,总结了一下内容:
Express下bcryptjs的使用步骤:
1.安装bcryptjs模块

npm install bcryptjs --save

2.在需要加密的模块中引入bcryptjs库

var bcrypt = require('bcryptjs');

3.设置加密强度

var salt = bcrypt.genSaltSync(10);

4.注册时生成HASH值,并插入数据库

router.post('/register', function(req, res, next){
    // 从连接池获取连接
    pool.getConnection(function(err, connection) {
        // 获取前台页面传过来的参数
        var param = req.query || req.params;
        /*生成HASH值*/
        var hash = bcrypt.hashSync(param.pwd,salt);
        // 建立连接 新增用户
        connection.query(userSQL.insert, ["",hash,param.phone,"","","",0], function(err, result) {
            res.send(result);
            // 释放连接
            connection.release();
        });
    });
});

5.登录时验证HASH值,并插入数据库

router.post('/login', function(req, res, next){
    // 从连接池获取连接
    pool.getConnection(function(err, connection) {
        // 获取前台页面传过来的参数
        var param = req.query || req.params;
        // 建立连接 根据手机号查找密码
        connection.query(userSQL.getPwdByPhoneNumber, [param.phone], function(err, result) {
            if(bcrypt.compareSync(param.pwd,result[0].password)){
                res.send("1");
                connection.query(userSQL.updateLoginStatusById, [1,result[0].id], function(err, result) {
                });
            }else{
                res.send("0");
            }
            // 释放连接
            connection.release();
        });
    });
});

以上采用的是bcryptjs的同步用法,下面介绍异步用法:
生成hash密码:

bcrypt.genSalt(10, function(err, salt) {
    bcrypt.hash("B4c0/\/", salt, function(err, hash) {
        // Store hash in your password DB.
    });
});

密码验证:

bcrypt.compare("B4c0/\/", hash).then((res) => {
    // res === true
});
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,589评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,268评论 19 139
  • 22年12月更新:个人网站关停,如果仍旧对旧教程有兴趣参考 Github 的markdown内容[https://...
    tangyefei阅读 35,284评论 22 257
  • 你掀开竹帘阳光进来,和我旧事重提 抬头望你似有汗滴,却终愿与你同去 回望风沙半遮口鼻,来处只剩下唏嘘 江湖崎岖风浪...
    水摇绢阅读 210评论 0 0
  • 我有病, 你有药吗? 你说, 有。 但并不想给你。 病突然就好了。
    小小图钉阅读 232评论 0 0