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
});
    原文作者:码农苏
    原文地址: https://segmentfault.com/a/1190000013165651
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞