nodejs aes 加解密实例


Posted in NodeJs onOctober 10, 2018

如下所示:

'use strict';
const crypto = require('crypto');

/**
 * AES加密的配置 
 * 1.密钥 
 * 2.偏移向量 
 * 3.算法模式CBC 
 * 4.补全值
 */
var AES_conf = {
  key: getSecretKey(), //密钥
  iv: '1012132405963708', //偏移向量
  padding: 'PKCS7Padding' //补全值
}

/**
 * 读取密钥key
 * 更具当前客户端的版本vid、平台platform获取对应的key
 */
function getSecretKey(){
  return "abcdabcdabcdabcd";
}

/**
 * AES_128_CBC 加密 
 * 128位 
 * return base64
 */
function encryption(data) {
  let key = AES_conf.key;
  let iv = AES_conf.iv;
  // let padding = AES_conf.padding;

  var cipherChunks = [];
  var cipher = crypto.createCipheriv('aes-128-cbc', key, iv);
  cipher.setAutoPadding(true);
  cipherChunks.push(cipher.update(data, 'utf8', 'base64'));
  cipherChunks.push(cipher.final('base64'));
  return cipherChunks.join('');
}


/**
 * 解密
 * return utf8
 */
function decryption(data){

  let key = AES_conf.key;
  let iv = AES_conf.iv;
  // let padding = AES_conf.padding;

  var cipherChunks = [];
  var decipher = crypto.createDecipheriv('aes-128-cbc', key, iv);
  decipher.setAutoPadding(true);
  cipherChunks.push(decipher.update(data, 'base64', 'utf8'));
  cipherChunks.push(decipher.final('utf8'));
  return cipherChunks.join('');
}


console.log(encryption('aaaaa4')); 
console.log(decryption('VuoXtyUolFyPrK50JnNUdw=='));

以上这篇nodejs aes 加解密实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

NodeJs 相关文章推荐
nodejs npm包管理的配置方法及常用命令介绍
Jun 05 NodeJs
14款NodeJS Web框架推荐
Jul 11 NodeJs
Nodejs极简入门教程(一):模块机制
Oct 25 NodeJs
nodejs进阶(6)—连接MySQL数据库示例
Jan 07 NodeJs
基于nodejs 的多页面爬虫实例代码
May 31 NodeJs
nodejs实现的简单web服务器功能示例
Mar 15 NodeJs
解决nodejs的npm命令无反应的问题
May 17 NodeJs
Nodejs把接收图片base64格式保存为文件存储到服务器上
Sep 26 NodeJs
nodejs简单抓包工具使用详解
Aug 23 NodeJs
linux 下以二进制的方式安装 nodejs
Feb 12 NodeJs
Nodejs在局域网配置https访问的实现方法
Oct 17 NodeJs
用Nodejs实现在终端中炒股的实现
Oct 18 NodeJs
nodejs读取本地中文json文件出现乱码解决方法
Oct 10 #NodeJs
nodejs require js文件入口,在package.json中指定默认入口main方法
Oct 10 #NodeJs
nodejs更新package.json中的dependencies依赖到最新版本的方法
Oct 10 #NodeJs
nodejs中用npm初始化来创建package.json的实例讲解
Oct 10 #NodeJs
nodejs初始化init的示例代码
Oct 10 #NodeJs
webpack打包nodejs项目的方法
Sep 26 #NodeJs
Nodejs把接收图片base64格式保存为文件存储到服务器上
Sep 26 #NodeJs
You might like
PHP+MySQL 制作简单的留言本
2009/11/02 PHP
[原创]PHP正则匹配中英文、数字及下划线的方法【用户名验证】
2017/08/01 PHP
kindeditor 加入七牛云上传的实例讲解
2017/11/12 PHP
[原创]js获取数组任意个不重复的随机数组元素
2010/03/15 Javascript
Tab页界面 用jQuery及Ajax技术实现(php后台)
2011/10/12 Javascript
javascript框架设计读书笔记之模块加载系统
2014/12/02 Javascript
jQuery实现首页图片淡入淡出效果的方法
2015/06/10 Javascript
js查看一个函数的执行时间实例代码
2015/09/12 Javascript
jQuery 如何给Carousel插件添加新的功能
2016/04/18 Javascript
JavaScript制作颜色反转小游戏
2016/09/25 Javascript
JavaScript html5利用FileReader实现上传功能
2020/03/27 Javascript
Web开发中客户端的跳转与服务器端的跳转的区别
2017/03/05 Javascript
如何使用less实现随机下雪动画详解
2019/01/02 Javascript
react同构实践之实现自己的同构模板
2019/03/13 Javascript
leaflet加载geojson叠加显示功能代码
2020/02/21 Javascript
[01:47]2018年度DOTA2最具人气解说-完美盛典
2018/12/16 DOTA
[01:03:27]NAVI vs EG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
[40:19]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第二场 12.18
2020/12/19 DOTA
python获得linux下所有挂载点(mount points)的方法
2015/04/29 Python
Python logging管理不同级别log打印和存储实例
2018/01/19 Python
python生成多个只含0,1元素的随机数组或列表的实例
2018/11/12 Python
Python实现查找最小的k个数示例【两种解法】
2019/01/08 Python
Python判断两个文件是否相同与两个文本进行相同项筛选的方法
2019/03/01 Python
在Python中合并字典模块ChainMap的隐藏坑【推荐】
2019/06/27 Python
Python字符串中删除特定字符的方法
2020/01/15 Python
Python更新所有已安装包的操作
2020/02/13 Python
pytorch实现Tensor变量之间的转换
2020/02/17 Python
Django路由层URLconf作用及原理解析
2020/09/24 Python
澳大利亚在线划船、露营和钓鱼商店:BCF Australia
2020/03/22 全球购物
教师个人剖析材料
2014/02/05 职场文书
2014两会学习心得:榜样精神伴我行
2014/03/17 职场文书
《爱的教育》读书心得
2014/11/08 职场文书
护士先进个人总结
2015/02/13 职场文书
解析:创业计划书和商业计划书二者之间到底有什么区别
2019/08/14 职场文书
Go语言基础map用法及示例详解
2021/11/17 Golang
springboot创建的web项目整合Quartz框架的项目实践
2022/06/21 Java/Android