NodeJs crypto加密制作token的实现代码


Posted in NodeJs onNovember 15, 2019

Node.js 内置的 Crypto 库 ,它提供各种加密算法,可以非常方便地让我们使用密码技术,解决应用开发中的问题。主要支持 hash(哈希),hmac(密钥哈希),cipher(编码),decipher(解码),sign(签名)以及 verify(验证)等。crypto 英文原意就是秘密成员的意思。

使用方法大概如下:

crypto.createHash(algorithm) 指定使用的加密方式

var crypto = require("crypto");//加密
crypto.getHashes()

显示内部支持的加密方式。

  • hash.update(data) 指定要加密的内容(data)
  • hash.digest("hex") 指定加密的编码方式,可以为hex binary或者base64。

举个例子:

var crypto = require("crypto");//加密

var a = crypto.createHash("md5").update("12").digest('base64');
console.log(a)

加密结果为c20ad4d76fe97759aa27a0c99bff6710 对比使用 MD5 加密工具加密的相同

NodeJs crypto加密制作token的实现代码

二、制作 token

// //登陆
app.post("/login" , (req,res)=>{
  //处理post请求
  var form = new formidable.IncomingForm();
  form.parse(req, function(err, fields, files) {

    //判定是否正确登陆
    User.find({
      "username" : fields.username ,
      "password" : fields.password
    }).exec((err,docs)=>{

      if(docs.length){
        //登陆成功
        req.session.login = true;
        req.session.username = fields.username;

        var token = crypto.createHash("sha256").update(fields.username + fields.username).digest('hex');
        res.json({"result" : 1 , "token": token});
      }else{
        res.json({"result" : -1});
      }
    });
  });
});

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

NodeJs 相关文章推荐
轻松创建nodejs服务器(6):作出响应
Dec 18 NodeJs
nodejs通过phantomjs实现下载网页
May 04 NodeJs
Nodejs进阶:如何将图片转成datauri嵌入到网页中去实例
Nov 21 NodeJs
ajax +NodeJS 实现图片上传实例
Jun 06 NodeJs
nodejs接入阿里大鱼短信验证码的方法
Jul 10 NodeJs
nodejs使用http模块发送get与post请求的方法示例
Jan 08 NodeJs
nodejs实现套接字服务功能详解
Jun 21 NodeJs
nodejs 如何手动实现服务器
Aug 20 NodeJs
NodeJS服务器实现gzip压缩的示例代码
Oct 12 NodeJs
Nodejs中怎么实现函数的串行执行
Mar 02 NodeJs
独立部署小程序基于nodejs的服务器过程详解
Jun 24 NodeJs
Nodejs技巧之Exceljs表格操作用法示例
Nov 06 #NodeJs
NodeJS http模块用法示例【创建web服务器/客户端】
Nov 05 #NodeJs
nodejs实现UDP组播示例方法
Nov 04 #NodeJs
nodejs dgram模块广播+组播的实现示例
Nov 04 #NodeJs
Nodejs实现图片上传、压缩预览、定时删除功能
Oct 25 #NodeJs
nodejs语言实现验证码生成功能的示例代码
Oct 13 #NodeJs
NodeJS有难度的面试题(能答对几个)
Oct 09 #NodeJs
You might like
百事可乐也出咖啡了 双倍咖啡因双倍快乐
2021/03/03 咖啡文化
解析PHP中一些可能会被忽略的问题
2013/06/21 PHP
PHP模板引擎Smarty自定义变量调解器用法
2016/04/11 PHP
Smarty保留变量用法分析
2016/05/23 PHP
基于Laravel 5.2 regex验证的正确写法
2019/09/29 PHP
JavaScript 在网页上单击鼠标的地方显示层及关闭层
2012/12/30 Javascript
JS delegate与live浅析
2013/12/21 Javascript
jQuery基于当前元素进行下一步的遍历
2014/05/20 Javascript
JavaScript Math.ceil 方法(对数值向上取整)
2015/01/09 Javascript
BootStrap iCheck插件全选与获取value值的解决方法
2016/08/24 Javascript
深入理解JavaScript中的块级作用域、私有变量与模块模式
2016/10/31 Javascript
关于微信jssdk实现多图片上传的一点心得分享
2016/12/13 Javascript
JS日程管理插件FullCalendar简单实例
2017/02/07 Javascript
jQuery插件echarts实现的去掉X轴、Y轴和网格线效果示例【附demo源码下载】
2017/03/04 Javascript
简单理解Vue中的nextTick方法
2018/01/30 Javascript
详解Angular5路由传值方式及其相关问题
2018/04/28 Javascript
基于vue-router 多级路由redirect 重定向的问题
2018/09/03 Javascript
浅谈webpack devtool里的7种SourceMap模式
2019/01/14 Javascript
JavaScript中的一些实用小技巧总结
2019/04/07 Javascript
js遍历详解(forEach, map, for, for...in, for...of)
2019/08/28 Javascript
layui 弹出层回调获取弹出层数据的例子
2019/09/02 Javascript
vue实现打地鼠小游戏
2020/08/21 Javascript
[33:39]DOTA2上海特级锦标赛C组小组赛#2 LGD VS Newbee第二局
2016/02/27 DOTA
Python中对元组和列表按条件进行排序的方法示例
2015/11/10 Python
利用python3随机生成中文字符的实现方法
2017/11/24 Python
用python 批量更改图像尺寸到统一大小的方法
2018/03/31 Python
简单实现python聊天程序
2018/04/01 Python
django做form表单的数据验证过程详解
2019/07/26 Python
Chain Reaction Cycles芬兰:世界上最大的在线自行车商店
2017/12/06 全球购物
医学生自荐信范文
2013/12/03 职场文书
幽默导游词开场白
2015/05/29 职场文书
单位工资证明范本
2015/06/12 职场文书
python munch库的使用解析
2021/05/25 Python
mybatis中sql语句CDATA标签的用法说明
2021/06/30 Java/Android
Golang表示枚举类型的详细讲解
2021/09/04 Golang
Vue3实现简易音乐播放器组件
2022/08/14 Vue.js