crypto 加密模块(不是很安全):是使用md5来加密,这是node自带的模块,不需要安装。

  • 引入模块:

    const crypto = require('crypto');

  • 当用户注册时,我们将从前端页面映射到后台的密码进行加密处理,关键语句:

      router.post("/regest",(req,res)=>{
    console.log(req.body);
    let name = req.body.username;
    let password = req.body.password;
    let md5 = crypto.createHash("md5");
    let newPas = md5.update(password).digest("hex");
    //先队密码加密,在插入到数据库中
    db("insert into user1(name,password) values(?,?)",[name,newPas],(err,data)=>{
    if (err){
    res.send("注册失败");
    }
    console.log(data);
    if (data){
    res.send("注册成功");
    }
    })
    });
  • 用户登录时也要进行密码校验,也需要对用户输入的密码进行加密,然后和数据库中加密的密码进行匹配。

      router.post("/login",(req,res)=>{
    let name = req.body.username;
    let password = req.body.password;
    let md5 = crypto.createHash("md5");
    let newPas = md5.update(password).digest("hex");
    db("select * from user1 where name = ?",[name],(err,data)=>{
    console.log(data[0].password);
    if (err){
    res.send("发生错误");
    }
    if (data){
    if (data[0].password === newPas){
    res.send("登录成功");
    }else {
    res.send("用户名或密码错误");
    }
    }
    })
    })

let newPas = md5.update(password).digest("hex");语句中的hex是指可逆的加密,这样的加密还有base64.

总结

加解密技术专业性很强,需要花费时间,深入研究。node的crypto模块能进行可逆的简单加密,但是不安全,我也不是很懂加密,但是我们在做小型的项目和demo时,还是可以用到。要想了解更多的加密技术,可以去找相关资料研究下。这里推荐相关node中加密讲解的文章(我看了还比较好理解的文章)http://cnodejs.org/topic/56e22b279386fbf86ddd69ce;

https://www.cnblogs.com/laogai/p/4664917.html

最新文章

  1. 每天一个linux命令目录
  2. HTML 简单的介绍
  3. sys.argv
  4. react实现的tab切换组件
  5. BizTalk开发系列(十七) 信封架构(Envelop)
  6. XidianOJ 1096 数的拆分
  7. 使用webstorm调试node程序
  8. 用jQuery实现瀑布流效果学习笔记
  9. KEIL的混合编程操作
  10. HTTP状态码搜集
  11. 状态机图statechart diagram
  12. 虚拟主机VPS区别:DigitalOcean优惠码
  13. 为什么树莓派不会受到 Spectre 和 Meltdown 攻击
  14. 3064: Tyvj 1518 CPU监控
  15. WebService的两种方式SOAP和REST有什么不同?
  16. Nacos系列:Nacos的Java SDK使用
  17. Haproxy 优化
  18. Tone Mapping算法系列二:一种自适应对数映射的高对比度图像显示技术及其速度优化。
  19. Python装饰器的深入理解
  20. SqlDataAdapter更新数据

热门文章

  1. Django的admin定制
  2. Python3.6全栈开发实例[027]
  3. Linux用户相关文件之用户信息文件
  4. 解决You are using pip version 9.0.1, however version 9.0.3 is available. You should consider upgra
  5. Python替换文件内容
  6. redis性能测试以及影响性能的因素
  7. Educational Codeforces Round 29(6/7)
  8. js文件操作
  9. iOS 11系列 - Xcode 9新特性
  10. TOGAF和BABOK