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中启用ECMAScript 6小结(windos以及Linux)
Jul 15 NodeJs
Nodejs中调用系统命令、Shell脚本和Python脚本的方法和实例
Jan 01 NodeJs
Nodejs中读取中文文件编码问题、发送邮件和定时任务实例
Jan 01 NodeJs
Windows系统下使用Sublime搭建nodejs环境
Apr 13 NodeJs
NodeJS整合银联网关支付(DEMO)
Nov 09 NodeJs
利用nodejs监控文件变化并使用sftp上传到服务器
Feb 18 NodeJs
nodejs实现邮件发送服务实例分享
Mar 29 NodeJs
详解nodejs微信公众号开发——4.自动回复各种消息
Apr 11 NodeJs
详解nodejs express下使用redis管理session
Apr 24 NodeJs
nodejs 最新版安装npm 的使用详解
Jan 18 NodeJs
详解微信小程序-获取用户session_key,openid,unionid - 后端为nodejs
Apr 29 NodeJs
nodejs+koa2 实现模仿springMVC框架
Oct 21 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
在字符串中把网址改成超级链接
2006/10/09 PHP
PHP设计模式之装饰器模式实例详解
2018/02/07 PHP
php中对象引用和复制实例分析
2019/08/14 PHP
[原创]用javascript实现检测指定目录是否存在的方法
2008/01/12 Javascript
combox改进版 页面原型参考dojo的,比网上jQuery的那些combox功能强,代码更小
2010/04/15 Javascript
jQuery Tools tab(幻灯片)
2012/07/14 Javascript
js加入收藏以及使用Jquery更改透明度
2014/01/26 Javascript
Jquery设置attr的disabled属性控制某行显示或者隐藏
2014/09/25 Javascript
JS实现超过长度限制后自动跳转下一款文本框的方法
2015/02/23 Javascript
Bootstrap表单组件教程详解
2016/04/26 Javascript
JS与Ajax Get和Post在使用上的区别实例详解
2016/06/08 Javascript
jQuery实现打开页面渐现效果示例
2016/07/27 Javascript
jQuery Easyui 下拉树组件combotree
2016/12/16 Javascript
Bootstrap源码解读媒体对象、列表组和面板(10)
2016/12/26 Javascript
设置cookie指定时间失效(实例代码)
2017/05/28 Javascript
微信小程序实现页面跳转传值的方法
2017/10/12 Javascript
element ui里dialog关闭后清除验证条件方法
2018/02/26 Javascript
vue如何进行动画的封装
2018/09/26 Javascript
js嵌套的数组扁平化:将多维数组变成一维数组以及push()与concat()区别的讲解
2019/01/19 Javascript
Vue路由之JWT身份认证的实现方法
2019/08/26 Javascript
layui 解决form表单点击无反应的问题
2019/10/25 Javascript
Python排序搜索基本算法之选择排序实例分析
2017/12/09 Python
python中reader的next用法
2018/07/24 Python
python浪漫表白源码
2019/04/05 Python
Python3 实现文件批量重命名示例代码
2019/06/03 Python
Python队列、进程间通信、线程案例
2019/10/25 Python
python装饰器使用实例详解
2019/12/14 Python
pytorch 实现将自己的图片数据处理成可以训练的图片类型
2020/01/08 Python
在Sublime Editor中配置Python环境的详细教程
2020/05/03 Python
在主流系统之上安装Pygame的方法
2020/05/20 Python
浅析PyCharm 的初始设置(知道)
2020/10/12 Python
浅析python连接数据库的重要事项
2021/02/22 Python
深入理解css中vertical-align属性
2017/04/18 HTML / CSS
Html5 audio标签样式的修改
2016/01/28 HTML / CSS
令人啧啧称赞的经理推荐信
2013/11/07 职场文书
高温慰问简报
2015/07/21 职场文书