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

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 加密工具加密的相同

二、制作 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});
      }
    });
  });
});

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

(0)

相关推荐

  • node.js+captchapng+jsonwebtoken实现登录验证示例

    提到登录验证,大家肯定能想到的就是12306的验证码了吧.12306为了防止刷票,可以说是煞费苦心,验证码也越来越难识别,最终即使是人也可能识别不了了. 今天,小编就给大家说一下node如何实现图片验证码,以及使用token验证登录.学习本文你将学到: 1.使用captchapng生成图片验证码 2.使用jsonwebtoken实现登录验证 一.图片验证码生成(最后有全部代码) 首先,我们理一下流程,第一步服务器要随机生成一组四位数. 第二步,将这四位数用canvas绘图生成图片. 第三步,我们

  • node微信开发之获取access_token+自定义菜单

    上一篇:自动回复的实现 这两天终于把获取access_token+自定义菜单+授权登录+获取用户信息部分完成了,nodejs其实不是很熟悉,所以估计有很多特性没用起来的,还有很多冗余代码以及各种问题,只能说功能实现了,大家多多担待吧. 获取access_token 因为调用所有公众号的接口都需要用到access_token,所以必须先将access_token缓存起来,方便以后使用,access_token的有效时间为2小时,所以需要定时更新,下面是代码实现. 有一点需要注意,本文会提到两个ac

  • 详解Node.js access_token的获取、存储及更新

    一.写在前面的话 上一篇文章中,我们使用 Node.js 成功的实现了接入微信公众平台功能.在这篇文章中,我们将实现微信公众平台一个非常重要的参数 access_token ,它是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用 access_token. 在开始之前,让我们先按捺住自己激动的心情.调整好呼吸,因为我们要将上一篇文章的代码重新整理一下.一个好的项目结构,更能有助于我们理清业务逻辑以及将来维护代码的便捷.OK? 二.整理项目结构 1.打开我们的项目,并在项目中添加文件夹,命

  • Node.js微信 access_token ( jsapi_ticket ) 存取与刷新的示例

    access_token 微信文档里存在两种access_token:普通 access_token 和 网页授权 access_token.具体区别参考:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842 以下提到的 access_token 均为普通的 access_token 1. 首先我们先去看看是如何请求 access_token 的? 微信公众平台技术文档 GET请求:https://api.weixin

  • node实现基于token的身份验证

    最近研究了下基于token的身份验证,并将这种机制整合在个人项目中.现在很多网站的认证方式都从传统的seesion+cookie转向token校验.对比传统的校验方式,token确实有更好的扩展性与安全性. 传统的session+cookie身份验证 由于HTTP是无状态的,它并不记录用户的身份.用户将账号与密码发送给服务器后,后台通过校验,但是并没有记录状态,于是下一次用户的请求仍然需要校验身份.为了解决这一问题,需要在服务端生成一条包含用户身份的记录,也就是session,再将这条记录发送给

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

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

  • nodejs密码加密中生成随机数的实例代码

    之前关于写了一个 nodejs密码加密中生成随机数,最近需要回顾,就顺便发到随笔上了 方法一: Math.random().toString(36).substr(2)运行后的结果就是11位数的随机数 方法二: 1.定义函数 function randomWord(randomFlag, min, max){ var str = "", range = min, arr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a',

  • Nodejs实现微信分账的示例代码

    公司的业务的场景需要用到微信分账的功能.对着官网文档调试了一下午才调通.记录下使用Nodejs微信分账的流程. 前提条件 在微信商户平台 产品中心->我的产品,支付扩展工具中 开通分账的功能 添加分账接收方. 这一步不设置的话回报一个*分账接收方关系不存在,请检查参数中每个接收方的关系.*错误 在商户平台获取商户id和secrect 需要将apiclient_cert.pem. apiclient_key传到服务器某个目录下面 具体实现 // @router post -> share -&g

  • php 实现一个字符串加密解密的函数实例代码

    php 实现一个字符串加密解密的函数 函数代码如下: /********************************************************************* 函数名称:encrypt 函数作用:加密解密字符串 使用方法: 加密 :encrypt('str','E','nowamagic'); 解密 :encrypt('被加密过的字符串','D','nowamagic'); 参数说明: $string :需要加密解密的字符串 $operation:判断是加密还

  • Python用摘要算法生成token及检验token的示例代码

    # 基础版,不依赖环境 import time import base64 import hashlib class Token_hander(): def __init__(self,out_time): self.out_time = out_time self.time = self.timer pass def timer(self): return time.time() def hax(self,str): """ 摘要算法加密 :param str: 待加密字符

  • Golang实现AES加密和解密的示例代码

    目录 对称加密 AES 算法 加解密 文件加密解密 说明 对称加密 AES 算法 (Advanced Encryption Standard ,AES) 优点 算法公开.计算量小.加密速度快.加密效率高. 缺点 发送方和接收方必须商定好密钥,然后使双方都能保存好密钥,密钥管理成为双方的负担. 应用场景 相对大一点的数据量或关键数据的加密. 加解密 package helpers import ( "bytes" "crypto/aes" "crypto/c

  • NodeJS和BootStrap分页效果的实现代码

    1.数据处理 首先在动态js中,根据url参数获取数据库文档的数量,设置分页的大小,获取当前页面的数据,然后将文档数量pagecount,分页大小pagesize,以及当前页面currentpage传递到页面中. 2.处理分页效果 我采用的是JavaScript动态生成的,你也可以利用ejs支持函数的特性将其封装后生成html形式的分页. 首先,添加分页ul,在你的页面中需要显示的位置添加代码: <ul class="pagination" id="pagination

  • Web制作验证码功能实例代码

    web开发中,经常会使用验证码功能,例如登录.注册,或其他关键功能之前经常会使用.合理使用 验证功能可以防止ddos攻击.爬虫攻击等.   实现效果:   实现原理: 由后台提供生成验证码的接口,前端每次请求会后端会生成验证码图片和验证码,验证码图片发送到客户端供客户端显示, 验证码字符串保存再后端的Session中,待前端再次请求业务接口与session里的验证码字符串做比对.    实现思路: 1.先由后端提供可以生产验证码图片的接口 2.前端通过 img 中设置 src 属性,请求验证码生

  • BootStrap制作导航条实例代码

    什么是 Bootstrap? Bootstrap 是一个用于快速开发 Web 应用程序和网站的前端框架.Bootstrap 是基于 HTML.CSS.JAVASCRIPT 的. bootstrap 导航条摸索了好久,要不就是左边和右边不会水平对齐,要不就是颜色不一样,菜鸟最后终于搞定,直接把代码放这里,以后直接用 代码如下所示: <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset=&

  • Java加密解密和数字签名完整代码示例

    常见的加密算法 基本的单向加密算法: BASE64严格地说,属于编码格式,而非加密算法 MD5(MessageDigestalgorithm5,信息摘要算法) SHA(SecureHashAlgorithm,安全散列算法) HMAC(HashMessageAuthenticationCode,散列消息鉴别码) 复杂的对称加密(DES.PBE).非对称加密算法: DES(DataEncryptionStandard,数据加密算法) PBE(Password-basedencryption,基于密码

随机推荐