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学习笔记之测试驱动
Apr 16 NodeJs
nodejs导出excel的方法
Jun 30 NodeJs
Nodejs express框架一个工程中同时使用ejs模版和jade模版
Dec 28 NodeJs
NodeJS创建基础应用并应用模板引擎
Apr 12 NodeJs
Nodejs进阶:核心模块net入门学习与实例讲解
Nov 21 NodeJs
用nodejs搭建websocket服务器
Jan 23 NodeJs
用Nodejs搭建服务器访问html、css、JS等静态资源文件
Apr 28 NodeJs
NodeJs form-data格式传输文件的方法
Dec 13 NodeJs
nodejs更改项目端口号的方法
May 13 NodeJs
nodejs更新package.json中的dependencies依赖到最新版本的方法
Oct 10 NodeJs
nodejs读取本地中文json文件出现乱码解决方法
Oct 10 NodeJs
NodeJs crypto加密制作token的实现代码
Nov 15 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
模仿OSO的论坛(五)
2006/10/09 PHP
PHP版网站缓存加快打开速度的方法分享
2012/06/03 PHP
PHP入门教程之数组用法汇总(创建,删除,遍历,排序等)
2016/09/11 PHP
一个非常实用的php文件上传类
2017/07/04 PHP
javascript针对DOM的应用分析(二)
2012/04/15 Javascript
JQuery each()函数如何优化循环DOM结构的性能
2012/12/10 Javascript
jQuery事件绑定和委托实例
2014/11/25 Javascript
javascript实现淡蓝色的鼠标拖动选择框实例
2015/05/09 Javascript
JavaScript的MVVM库Vue.js入门学习笔记
2016/05/03 Javascript
浅谈JSON.stringify()和JOSN.parse()方法的不同
2016/08/29 Javascript
BootStrap 动态添加验证项和取消验证项的实现方法
2016/09/28 Javascript
vue.js实现用户评论、登录、注册、及修改信息功能
2020/05/30 Javascript
zTree树形插件异步加载方法详解
2017/06/14 Javascript
浅谈Node 调试工具入门教程
2018/03/20 Javascript
vue 地区选择器v-distpicker的常用功能
2019/07/23 Javascript
Vue-Cli项目优化操作的实现
2019/10/27 Javascript
浅谈TypeScript的类型保护机制
2020/02/23 Javascript
python调用fortran模块
2016/04/08 Python
Python调用系统底层API播放wav文件的方法
2017/08/11 Python
Pandas标记删除重复记录的方法
2018/04/08 Python
把django中admin后台界面的英文修改为中文显示的方法
2019/07/26 Python
python模块hashlib(加密服务)知识点讲解
2019/11/25 Python
Python:type、object、class与内置类型实例
2019/12/25 Python
基于python实现计算两组数据P值
2020/07/10 Python
4款Python 类型检查工具,你选择哪个呢?
2020/10/30 Python
爱游人:Travelliker
2017/09/05 全球购物
什么是serialVersionUID
2016/03/04 面试题
Unix如何在一行中运行多个命令
2015/05/29 面试题
应届生服务员求职信
2013/10/31 职场文书
儿子婚宴答谢词
2014/01/09 职场文书
学生安全教育材料
2014/02/14 职场文书
中考标语大全
2014/06/05 职场文书
2016年“我们的节日·清明节”活动总结
2016/04/01 职场文书
MySql学习笔记之事务隔离级别详解
2021/05/12 MySQL
关于Oracle12C默认用户名system密码不正确的解决方案
2021/10/16 Oracle
Java实现超大Excel文件解析(XSSF,SXSSF,easyExcel)
2022/07/15 Java/Android