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

node中的加密模块 crypto的更多相关文章

  1. node中的Stream-Readable和Writeable解读

    在node中,只要涉及到文件IO的场景一般都会涉及到一个类-Stream.Stream是对IO设备的抽象表示,其在JAVA中也有涉及,主要体现在四个类-InputStream.Reader.Outpu ...

  2. 深入理解jQuery、Angular、node中的Promise

    最初遇到Promise是在jQuery中,在jQuery1.5版本中引入了Deferred Object,这个异步队列模块用于实现异步任务和回调函数的解耦.为ajax模块.队列模块.ready事件提供 ...

  3. Node中的定时器详解

    在大多数的业务中,我们都会有一些需求,例如几秒钟实现网页的跳转,几分钟对于后台数据进行清理,node与javascript都具有将代码延迟一段时间的能力.在node中可以使用三种方式实现定时功能:超时 ...

  4. node中的可读流和可写流

    javascript的一个不足之处是不能处理二进制数据,于是node中引入了Buffer类型.这个类型以一个字节(即8位)为单位,给数据分配存储空间.它的使用类似于Array,但是与Array又有不同 ...

  5. node中的Readable - flowing/non-flowing mode

    大家都知道在node中Readable Stream有两种模式: flowing mode和non-flowing mode. 对于flowing mode的Readable Stream, 我们是没 ...

  6. 清理8组nodes中表的历史数据,平均每个node中的表有1.5亿条记录,需要根据date_created字段清理8000W数据记录,这个字段没有索引。

    清理8组nodes中表的历史数据,平均每个node中的表有1.5亿条记录,需要根据date_created字段清理8000W数据记录,这个字段没有索引. 环境介绍  线上磁盘空间不足,truncate ...

  7. 重回博客 谈一谈Node中的异步和单线程

    重回博客,这个帐号之前注册后就只发了一篇博客.听朋友建议,决定一周两次更新. 第一篇谈论一下最近想的比较多的异步的问题. 传统多线程异步 传统的异步是多线程的,当要同时做两件事的时候,他们是执行在不同 ...

  8. 使用express+multer实现node中的图片上传

    使用express+multer实现node中的图片上传 在前端中,我们使用ajax来异步上传图片,使用file-input来上传图片,使用formdata对象来处理图片数据,post到服务器中 在n ...

  9. 简单剖析Node中的事件监听机制(一)

    使用js的class类简单的实现一个事件监听机制,不同于浏览器中的时间绑定与监听,类似于node中的时间监听,并且会在接下来的文章中去根据自己的理解去写一下Event模块中的原理. Node.js使用 ...

随机推荐

  1. 兼容ie的background-size: cover;

    .bg{ background: url() no-repeat; background-size:cover; filter: progid:DXImageTransform.Microsoft.A ...

  2. 人工智能-baidu-aip语音识别(语音转文字)

    做这个之前,需要在电脑上安装FFmpeg工具,将要转的语音格式转为PCM格式.FFmpeg不需要安装,下载后,打开bin文件夹,然后将路径放在系统环境变量里.记住,要关闭所有打开的Pycharm,然后 ...

  3. Python3.6全栈开发实例[024]

    24.文件a1.txt内容(注意每行中的空格是不一样的,需要对空格进行处理)序号 部门   人数   平均年龄           备注 1 python   30   26   单身狗 2 Linu ...

  4. 斯坦福大学Andrew Ng - 机器学习笔记(4) -- 机器学习算法的选择与评估

    大概用了一个月,Andrew Ng老师的机器学习视频断断续续看完了,以下是个人学习笔记,入门级别,权当总结.笔记难免有遗漏和误解,欢迎讨论. 鸣谢:中国海洋大学黄海广博士提供课程视频和个人笔记,在此深 ...

  5. 修改mysql root的密码

    use mysql:update user set Password = Password('newPwd') where user='root';//更改root用户的密码flush privile ...

  6. java ReentrantLock可重入锁的使用场景

    摘要 从使用场景的角度出发来介绍对ReentrantLock的使用,相对来说容易理解一些. 场景1:如果发现该操作已经在执行中则不再执行(有状态执行) a.用在定时任务时,如果任务执行时间可能超过下次 ...

  7. mysql数据库补充知识6 完整性约束

    一 介绍 约束条件与数据类型的宽度一样,都是可选参数 作用:用于保证数据的完整性和一致性主要分为: PRIMARY KEY (PK) 标识该字段为该表的主键,可以唯一的标识记录 FOREIGN KEY ...

  8. DP专题(不定期更新)

    1.UVa 11584 Partitioning by Palindromes(字符串区间dp) 题意:给出一个字符串,划分为若干字串,保证每个字串都是回文串,同时划分数目最小. 思路:dp[i]表示 ...

  9. LeetCode:螺旋矩阵【54】

    LeetCode:螺旋矩阵[54] 题目描述 给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素. 示例 1: 输入: [ [ 1, 2, 3 ], ...

  10. Funq之Lambda表达式2

    Last month I started a series of posts covering some of the new VB and C# language features that are ...