nodejs与javascript中的aes加密

// var CryptoJS = require("crypto-js");

// var key = CryptoJS.enc.Utf8.parse("8NONwyJtHesysWpM");

var crypto = require(‘crypto‘);

var key = new Buffer(‘7y05R9qwKaIKgIHh4vAw19X1zuknR21Y‘, ‘binary‘);

var iv = "";

var cryto_aes = module.exports = {};

//加密

cryto_aes.Encrypt = function(data){

  iv = iv || "";

  var clearEncoding = ‘utf8‘;

  var cipherEncoding = ‘base64‘;

  var cipherChunks = [];

  var cipher = crypto.createCipheriv(‘aes-256-ecb‘, key, iv);

  cipher.setAutoPadding(true);

  cipherChunks.push(cipher.update(data, clearEncoding, cipherEncoding));

  cipherChunks.push(cipher.final(cipherEncoding));

  return cipherChunks.join(‘‘);

}

//解密

cryto_aes.Decrypt = function(data){

  if (!data) {

    return "";

  }

  iv = iv || "";

  var clearEncoding = ‘utf8‘;

  var cipherEncoding = ‘base64‘;

  var cipherChunks = [];

  var decipher = crypto.createDecipheriv(‘aes-256-ecb‘, key, iv);

  decipher.setAutoPadding(true);

  cipherChunks.push(decipher.update(data, cipherEncoding, clearEncoding));

  cipherChunks.push(decipher.final(clearEncoding));

  return cipherChunks.join(‘‘);

}

参考:http://www.cnblogs.com/vipstone/p/5514886.html

参照上述方法时注意 iv 和 key的设置  可能会报Invalid IV length 错  解决方法 就是 设置成我粘贴的代码中的格式。

时间: 2024-10-07 08:34:39

nodejs与javascript中的aes加密的相关文章

JAVA中使用AES加密解密

技术交流群: 233513714 /** * AES加密测试 * * @param str 加密参数 */ public void aesTest(String str) { log.info("[rsaTest获取请求:{}]", str); try { String encryptResult = AESUtil.encrypt(str, "123456"); log.info("[AES加密后的参数为:{}]", encryptResult

VUE中的 AES加密和解密

import CryptoJS from 'crypto-js/crypto-js' // 默认的 KEY 与 iv 如果没有给 const KEY = CryptoJS.enc.Utf8.parse('F697467B14B076F2') const IV = CryptoJS.enc.Utf8.parse('0102030405060708') /** * AES加密 :字符串 key iv 返回base64 */ export function Encrypt(word, keyStr,

python中的AES加密与解密

AES简介 高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准.这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用.经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院(NIST)于2001年11月26日发布于FIPS PUB 197,并在2002年5月26日成为有效的标准.2006年,高级加密标准已然成为对称密钥加密中最流行的算法之一. AES算法为最常见的对

在PowerShell中使用AES加密

在上一篇我们知道了,在不同的user account和workstations, 如何使用AES key去生成SecureString.我们需要去保护好Key,以免遭非法者解密数据保护. 在之前的例子中,我使用一个非常简单的16-byte 数组存储在脚本本身的主体. 这不是一个好的做法, 这和你密码用明文表示本质上是一样的.或者你可以在一个隔离的脚本里提前生成一个key. 作为一个例子,我已经建立了一个小脚本生成一个随机的16-byte数组. 我用System.Security.Cryptogr

javascript和c#aes加密方法互解

关键信息如下. javascript function Encrypt() { var key = CryptoJS.enc.Utf8.parse('8080808080808080'); var iv = CryptoJS.enc.Utf8.parse('8080808080808080'); var varIn = document.getElementById("txtIn").value; var varOut = CryptoJS.AES.encrypt(CryptoJS.e

JAVA后台与前端JAVASCRIPT之间AES加密解密互通

调试了一天终于把java后台与javascript之间的AES加密解密成功了,记录一下过程. 后台java解密代码:解码算法及模式为 AES/CBC/PKCS5Padding key与iv要为16位 得到16的字符数组按照16进制编码转化为字符串 public static String encrypt(String content, String key) throws Exception { try { Key keySpec = new SecretKeySpec(key.getBytes

在PHP中使用AES加密算法加密数据及解密数据

这个算法可以将数据加密后,储存起来,到需要用的时候,用之前加密的秘钥将之还原. 除了这个之外,还有AES这个算法能够将数据很好的加密起来,在传输过程中不容易被破解. 在PHP中,我们必须先安装好mcrypt这个模块,并且添加相应版本的扩展到php中. AES加密模式和填充方式有以下之中,但不是全部 复制代码代码如下: 算法/模式/填充                16字节加密后数据长度        不满16字节加密后长度AES/CBC/NoPadding                 16

AES加密CBC模式兼容互通四种编程语言平台【PHP、Javascript、Java、C#】

先简单从百度找来介绍: ? 1 2 3 4 5 6     密码学中的高级加密标准(Advanced Encryption Standard,AES),又称高级加密标准Rijndael加密法, 是美国联邦政府采用的一种区块加密标准.这个标准用来替代原先的DES,已经被多方分析且广为全世界 所使用.经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院 (NIST)于2001年11月26日 发布于FIPS PUB197,并在2002年5月26日成为有效的标准.2006年,高级加密标准已然成为对

使用kettle转换中的JavaScript对密码进行加密和解密

日常开发中,为了确保账号和密码的安全,时常要对密码进行加密和解密.然而kettle是怎么对密码进行加密和解密的呢? 下面的代码需要再转换中的JavaScript中运行. var encrypted_password = 'not encrypted'; 加密(js中调用): encrypted_password = "Encrypted " + Packages.org.pentaho.di.core.encryption.Encr.encryptPassword(clear_pass