美文网首页
Express下采用bcryptjs进行密码加密

Express下采用bcryptjs进行密码加密

作者: 码农苏1024 | 来源:发表于2017-10-24 17:05 被阅读0次

前几天利用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
});

相关文章

  • Express下采用bcryptjs进行密码加密

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

  • 深入解析Express下采用bcryptjs进行密码加密

    本篇文章主要介绍了Express下采用bcryptjs进行密码加密的方法,写的十分的全面细致,具有一定的参考价值,...

  • 《跟我学Shiro》学习笔记 第四章:编码/加密

    前言 密码存储应该采用加密/生产密码摘要存储。而不是采用明文存储,这期我们就来学习一下Shiro在编码与加密方面的...

  • K8S 创建和查看secret(九)

    yaml中的用户密码敏感信息一般都会采用密码存储采用base64编码进行加密 cat secret.ymal ku...

  • express+mongodb写接口遇坑

    node crypto密码加密 mongodb 查询 express-session 本地接口没问题,部署以后po...

  • 我所知道的HTTPS

    加密相关 这里主要介绍对称加密和非对称加密。 对称加密采用对称密码编码技术,也就是编码和解码采用相同的描述字符。既...

  • iOS如何使用MD5加密

    在登录注册时,经常采用MD5加密技术对密码,也用于对敏感数据进行加密。本文简单介绍了iOS中MD5加密的使用方式。...

  • mongoose验证用户登录

    通过npm init -y新建一个项目 采用bcrypt进行密码加密 新建src目录,在目录下新建models目录...

  • bcryptjs

    加密包安装npm install bcryptjs使用,首先在定义Schema时加密 其次,在登录的时候通过用户名...

  • 关于TLS经验小结(中)

    上期讲了ssl握手流程与非对称加密,这期继续上期的话题讲一下对称加密以及模式。 1.什么是对称加密? 采用单钥密码...

网友评论

      本文标题:Express下采用bcryptjs进行密码加密

      本文链接:https://www.haomeiwen.com/subject/ldrxpxtx.html