需求

使用 node.js 进行AES 加密解密,代码如下

代码

// Nodejs encryption with CTR
const crypto = require('crypto');
const algorithm = 'aes-256-cbc';
const keyStr = '2ba27190770c3203a3094b1d212f5e2f'
const ivStr = keyStr.substr(0, 16)
const keyByte = Buffer.from(keyStr)
const ivByte = Buffer.from(ivStr)function encrypt(text) {let cipher = crypto.createCipheriv(algorithm, Buffer.from(keyStr), ivByte);let encrypted = cipher.update(text);encrypted = Buffer.concat([encrypted, cipher.final()]);return {keyStr: keyStr,ivStr: ivByte.toString('hex'),encryptedData: encrypted.toString('hex'),rawBuffer: encrypted,base64Str: encrypted.toString("base64")};
}function decrypt(text) {let encryptedData = text.encryptedDatalet iv = Buffer.from(text.ivStr, 'hex');let encryptedText = Buffer.from(encryptedData, 'hex');let decipher = crypto.createDecipheriv(algorithm, Buffer.from(keyStr), iv);let decrypted = decipher.update(encryptedText);decrypted = Buffer.concat([decrypted, decipher.final()]);return decrypted.toString();
}function decryptBase64(base64Str, ivStr) {let buff = Buffer.from(base64Str, 'base64')let encryptedData = buff.toString('hex')let iv = Buffer.from(ivStr, 'hex');let encryptedText = Buffer.from(encryptedData, 'hex');let decipher = crypto.createDecipheriv(algorithm, Buffer.from(keyStr), iv);let decrypted = decipher.update(encryptedText);decrypted = Buffer.concat([decrypted, decipher.final()]);return decrypted.toString();
}var hw = encrypt("001002003004005006007+()")
console.log('encrypted = ', hw)
console.log('decode = ', decrypt(hw))
console.log('decode2 = ', decryptBase64(hw.base64Str, hw.ivStr))

输出内容

encrypted =  {keyStr: '2ba27190770c3203a3094b1d212f5e2f',ivStr: '32626132373139303737306333323033',encryptedData: '47fca608a73f01a9d8215e44898d60b853076f67c60d29defcdb0e0f59294390',rawBuffer: <Buffer 47 fc a6 08 a7 3f 01 a9 d8 21 5e 44 89 8d 60 b8 53 07 6f 67 c6 0d 29 de fc db 0e 0f 59 29 43 90>,base64Str: 'R/ymCKc/AanYIV5EiY1guFMHb2fGDSne/NsOD1kpQ5A='
}
decode =  001002003004005006007+()
decode2 =  001002003004005006007+()

node.js aes-256-cbc 加密 解密相关推荐

  1. Go Nodejs Java Aes 128 ECB加密解密结果保持一致

    在多语言的生产环境下,常常是由一种语言进行加密而由另一种语言来进行解密,因此有必要保持各种语言之间加密解密算法的一致性.下面列出了Go,Nodejs,Java 的 Aes-128-Ecb的加密解密算法 ...

  2. aes 256 ecb 加解密 pkcs7补全 python JS

    python aes 256 ecb 加解密 功能 实现 Python ECB 256 JS版本 ECB 算法 JS版本 CBC 算法Pkcs7填充 SQL AES 在线验证网站 notice 功能 ...

  3. aes 256 cbc java,AES256加解密java语言实现

    AES256加解密java语言实现 写在前面 基于项目安全性需要,有时候我们的项目会使用AES 256加解密算法.以下,是针对实现AES256 Padding7加密算法实现的关键步骤解析以及此过程遇到 ...

  4. java aes cfb 256_aes加密解密源码,包括aes128、aes192、aes256位,以及cbc、cfb、ecb、ofb、pcbc模式...

    AES加解密总共有以下这些 算法/模式/填充                 字节加密后数据长度       不满16字节加密后长度 AES/CBC/NoPadding                 ...

  5. Vue前端和Java后端 联调使用AES 前后端加密解密

    Vue前端和Java后端 联调使用AES 前后端加密解密 最近在项目中需要针对重要数据进行加密传输,在网上找了一大推加密方式 最终采用AES 加密 Java端 package com.zk.web.u ...

  6. angular和JAVA实现aes、rsa加密解密,前后端交互,前端加解密和后端JAVA加解密实现

    今天实现了下AES和RSA加密解密,主要的功能是对前后端交互数据进行加密解密,为什么要用到两个算法呢,首先RSA默认的话加密长度是有限的100多个byte吧大约,并且需要公钥私钥,而AES加密没有限制 ...

  7. python aes 加盐 加密解密

    python aes 加盐 加密解密 爬虫就是在学习的过程,前几天从某网站的js里学到的加密方式,通过下断点弄清加密原理后,用python复现一下,在这里和大家分享下 #--------引入模块--- ...

  8. C#国密SM4 CBC加密解密

    ** C#国密SM4 CBC加密解密 在你得项目nuget引用程序集:KYSharp.SM 安装 2.0 版本,里面才有sm4的加密 ** static void Main(string[] args ...

  9. AES CBC 加密解密(偏移量)

    参考文章:AES加密解密(ECB模式) 工具:在线AES加密解密 使用固定的key package com.eshore.cloud.utils;import android.text.TextUti ...

  10. AES CBC加密/解密

    简介 高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准.这个标准用来替代原先的D ...

最新文章

  1. 在windows下配置pthread多线程
  2. java购物车简介_Java--购物车
  3. php的server和location,3、Nginx关于server块和location块的配置
  4. 如何能在git bash中使用mvn命令_使用Github Actions完成CI/CD工作
  5. 5G时代 我国在通信技术领域弯道超车指日可待
  6. 一条数据的HBase之旅,简明HBase入门教程-开篇
  7. 基于windows平台的命令行软件安装工具Chocolatey的安装
  8. anaconda moviepy_Anaconda的安装和Jupyter Notebook使用
  9. vue 多页面应用例子_【微服务】137:Vue之生命周期钩子
  10. .NET中Web Service的异常机制
  11. 查看job运行时间,以便不影响生产数据库正常运行
  12. 遗传算法实践详解(deap框架初体验)
  13. three.js特效
  14. Vue项目实现web端飘窗
  15. 火车票能不能选座_12306可以选座位吗 12306怎么选座位方法介绍
  16. ubuntu安装视频播放器
  17. linux编辑状态a,linux 操作
  18. 转载_进程、轻量级进程(LWP)、线程
  19. 2014年网研上机题目
  20. 如果介绍自己做的项目

热门文章

  1. 毕业答辩mysql会提问什么_【毕业论文答辩一般会问什么问题】答辩的五个问题及答案...
  2. 单点登录解决方案--网关、认证、鉴权
  3. 真正好用的工业品ERP系统应该是什么样的?
  4. [附源码]计算机毕业设计Python+uniapp家庭理财产品小程序10341(程序+lw+远程部署)
  5. 网页文件被加入恶意百度跳转代码\x64\x6f\x63\x75\x6d\x65\x6e\x74 【解密】
  6. Xilinx FPGA SelectIO串并转换IP核使用笔记
  7. NO_PUBKEY 9AA38DCD55BE302B
  8. HDU 5536 Chip Factory 01字典树
  9. 苹果服务器响应很慢,苹果6用了一年多了,现在响应速度特别慢,有什么办法可解决...
  10. syslog日志系统——框架选型