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的前后端分离的思考与实践(六)Nginx + Node.js + Java 的软件栈部署实践
Sep 26 NodeJs
Windows系统下使用Sublime搭建nodejs环境
Apr 13 NodeJs
NodeJS和BootStrap分页效果的实现代码
Nov 07 NodeJs
nodejs个人博客开发第五步 分配数据
Apr 12 NodeJs
nodejs对express中next函数的一些理解
Sep 08 NodeJs
详解nodejs通过代理(proxy)发送http请求(request)
Sep 22 NodeJs
nodejs使用express获取get和post传值及session验证的方法
Nov 09 NodeJs
nodejs通过钉钉群机器人推送消息的实现代码
May 05 NodeJs
nodejs 递归拷贝、读取目录下所有文件和目录
Jul 18 NodeJs
NodeJS 文件夹拷贝以及删除功能
Sep 03 NodeJs
在NodeJs中使用node-schedule增加定时器任务的方法
Jun 08 NodeJs
nodejs+express最简易的连接数据库的方法
Dec 23 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
destoon找回管理员密码的方法
2014/06/21 PHP
php删除数组指定元素实现代码
2017/05/03 PHP
PHP实现微信小程序人脸识别刷脸登录功能
2018/05/24 PHP
PHP 范围解析操作符(::)用法分析【访问静态成员和类常量】
2020/04/14 PHP
javascript 三种方法实现获得和设置以及移除元素属性
2013/03/20 Javascript
js 自定义个性下拉选择框示例
2013/08/20 Javascript
jQuery使用toggleClass方法动态添加删除Class样式的方法
2015/03/26 Javascript
jquery淡入淡出效果简单实例
2016/01/14 Javascript
ichart.js绘制虚线、平均分虚线效果的实现代码
2016/05/05 Javascript
在 Angular2 中实现自定义校验指令(确认密码)的方法
2017/01/23 Javascript
Nodejs高扩展性的模板引擎 functmpl简介
2017/02/13 NodeJs
JavaScript的数据类型转换原则(干货)
2018/03/15 Javascript
vuejs实现标签选项卡动态更改css样式的方法
2018/05/31 Javascript
JavaScript实现浅拷贝与深拷贝的方法分析
2018/07/05 Javascript
jQuery实现合并表格单元格中相同行操作示例
2019/01/28 jQuery
jQuery添加新内容的四个常用方法分析【append,prepend,after,before】
2019/03/19 jQuery
7个好用的JavaScript技巧分享(译)
2019/05/07 Javascript
vue里的data要用return返回的原因浅析
2019/05/28 Javascript
js设计模式之单例模式原理与用法详解
2019/08/15 Javascript
layui监听select变化,以及设置radio选中的方法
2019/09/24 Javascript
javascript异常处理实现原理详解
2020/02/17 Javascript
Vue项目打包编译优化方案
2020/09/16 Javascript
Python实现希尔排序算法的原理与用法实例分析
2017/11/23 Python
详解Python之unittest单元测试代码
2018/01/24 Python
python定时按日期备份MySQL数据并压缩
2019/04/19 Python
一篇文章搞定Python操作文件与目录
2019/08/13 Python
python文件绝对路径写法介绍(windows)
2019/12/25 Python
python中numpy.empty()函数实例讲解
2021/02/05 Python
电气工程及其自动化自我评价四篇
2013/09/24 职场文书
医学毕业生自我鉴定
2013/10/30 职场文书
办公文员的工作岗位职责
2013/11/12 职场文书
乡镇八一建军节活动方案
2014/08/24 职场文书
超市收银员岗位职责
2015/04/07 职场文书
2016年圣诞节寄语(一句话)
2015/12/07 职场文书
MySQL 常见的数据表设计误区汇总
2021/06/07 MySQL
纯CSS3实现div按照顺序出入效果
2021/07/15 HTML / CSS