您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

详解nodejs与javascript中的aes加密

2025/6/15 7:03:29发布21次查看
一、简介
1.aes加密简单来说,在密码学中又称rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的des,已经被多方分析且广为全世界所使用。高级加密标准已然成为对称密钥加密中最流行的算法之一。
2.aes的区块长度固定为128 比特,密钥长度则可以是128,192或256比特;而rijndael使用的密钥和区块长度可以是32位的整数倍,以128位为下限,256比特为上限。包括aes-ecb,aes-cbc,aes-ctr,aes-ofb,aes-cfb。
3.在这里我们只接受常用的ecb方式 + pkcs7padding(与pkcs5padding值相同)填充加密。
二、应用
1.nodejs中aes的使用
var crypto = require('crypto'); var aesutil = module.exports = {}; /** * aes加密 * @param data 待加密内容 * @param key 必须为32位私钥 * @returns {string} */ aesutil.encryption = function (data, key, iv) { 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(''); } /** * aes解密 * @param data 待解密内容 * @param key 必须为32位私钥 * @returns {string} */ aesutil.decryption = function (data, key, iv) { 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(''); }
2.javascript中aes的使用
下载第三方库crypto-js.js git地址:https://github.com/brix/crypto-js
引入src下的crypto-js.js,加密代码如下:
var key = "12345678" //秘钥必须为:8/16/32位 var message = "123456"; //加密 var encrypt = cryptojs.aes.encrypt(message, cryptojs.enc.utf8.parse(key), { mode: cryptojs.mode.ecb, padding: cryptojs.pad.pkcs7 }); console.log("value: "+encrypt); //解密 var decrypt = cryptojs.aes.decrypt(encrypt, cryptojs.enc.utf8.parse(key), { mode: cryptojs.mode.ecb, padding: cryptojs.pad.pkcs7 }); console.log("value: "+decrypt.tostring(cryptojs.enc.utf8));
以上就是本文的全部内容,希望对大家的学习有所帮助。
更多详解nodejs与javascript中的aes加密。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product