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 相关文章推荐
使用upstart把nodejs应用封装为系统服务实例
Jun 01 NodeJs
在NodeJS中启用ECMAScript 6小结(windos以及Linux)
Jul 15 NodeJs
nodejs中的fiber(纤程)库详解
Mar 24 NodeJs
Nodejs学习笔记之测试驱动
Apr 16 NodeJs
NodeJs——入门必看攻略
Jun 27 NodeJs
Nodejs高扩展性的模板引擎 functmpl简介
Feb 13 NodeJs
简单好用的nodejs 爬虫框架分享
Mar 26 NodeJs
nodejs使用express创建一个简单web应用
Mar 31 NodeJs
详解使用vscode+es6写nodejs服务端调试配置
Sep 21 NodeJs
nodejs中函数的调用实例详解
Oct 31 NodeJs
Nodejs + Websocket 指定发送及群聊的实现
Jan 09 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
PHP反射类ReflectionClass和ReflectionObject的使用方法
2013/11/13 PHP
PHP小教程之实现链表
2014/06/09 PHP
php调用nginx的mod_zip模块打包ZIP文件
2014/06/11 PHP
浅析php单例模式
2014/11/25 PHP
php封装的连接Mysql类及用法分析
2015/12/10 PHP
thinkphp项目部署到Linux服务器上报错“模板不存在”如何解决
2016/04/27 PHP
比较全的JS checkbox全选、取消全选、删除功能代码
2008/12/19 Javascript
div层的移动及性能优化
2010/11/16 Javascript
神奇!js+CSS+DIV实现文字颜色渐变效果
2016/03/16 Javascript
jQuery获取父元素及父节点的方法小结
2016/04/14 Javascript
jQuery控制文本框只能输入数字和字母及使用方法
2016/05/26 Javascript
浅谈EasyUI常用控件的禁用方法
2016/11/09 Javascript
JQuery Dialog对话框 不能通过Esc关闭的原因分析及解决办法
2017/01/18 Javascript
JS实现的五级联动菜单效果完整实例
2017/02/23 Javascript
angularjs实现的购物金额计算工具示例
2018/05/08 Javascript
vue-content-loader内容加载器的使用方法
2018/08/05 Javascript
vue的keep-alive中使用EventBus的方法
2019/04/23 Javascript
nodejs制作小爬虫功能示例
2020/02/24 NodeJs
Python中实现对list做减法操作介绍
2015/01/09 Python
pandas 两列时间相减换算为秒的方法
2018/04/20 Python
python模块之subprocess模块级方法的使用
2019/03/26 Python
使用 pytorch 创建神经网络拟合sin函数的实现
2020/02/24 Python
Django中文件上传和文件访问微项目的方法
2020/04/27 Python
如何验证python安装成功
2020/07/06 Python
django美化后台django-suit的安装配置操作
2020/07/12 Python
班组安全员工作职责
2014/02/01 职场文书
大型晚会策划方案
2014/02/06 职场文书
2014村务公开实施方案
2014/02/25 职场文书
协议书模板
2014/04/23 职场文书
商务日语专业的自荐信
2014/05/23 职场文书
实验室标语
2014/06/21 职场文书
思想作风纪律整顿心得体会
2014/09/04 职场文书
四查四看自我剖析材料
2014/09/19 职场文书
jdbc使用PreparedStatement批量插入数据的方法
2021/04/27 MySQL
Python中threading库实现线程锁与释放锁
2021/05/17 Python
高性能跳频抗干扰宽带自组网电台
2022/02/18 无线电