
nodejs与javascript中的aes加密
发布日期:2025-04-21 15:14:23
浏览次数:5
分类:精选文章
本文共 1873 字,大约阅读时间需要 6 分钟。
AES加密简介
AES(Rijndael加密法)是现代密码学中的重要算法,由美国联邦政府标准化,取代了曾经广泛使用的DES算法。作为一种对称密钥加密标准,AES已成为全球范围内最流行的区块加密算法之一。它的区块加密长度固定为128比特,密钥长度则可选128、192或256比特,与旧算法Rijndael相比更加高效且安全性更高。
AES支持多种工作模式,包括ECB、CBC、CTR、OFB和CFB等。每种模式在加密流程中都有其独特的特点和应用场景。
AES应用示例
Node.js中AES实现
在Node.js环境中,常用的实现方式是使用内置的`crypto`模块。以下是一个示例实现:
const crypto = require('crypto');module.exports = { encryption: function(data, key, iv) { const clearEncoding = 'utf8'; const cipherEncoding = 'base64'; const cipher = crypto.createCipheriv('aes-256-ecb', key, iv); cipher.setAutoPadding(true); const cipherChunks = []; cipherChunks.push(cipher.update(data, clearEncoding, cipherEncoding)); cipherChunks.push(cipher.final(cipherEncoding)); return cipherChunks.join(''); }, decryption: function(data, key, iv) { if (!data) return ""; const clearEncoding = 'utf8'; const cipherEncoding = 'base64'; const decipher = crypto.createDecipheriv('aes-256-ecb', key, iv); decipher.setAutoPadding(true); const cipherChunks = []; cipherChunks.push(decipher.update(data, cipherEncoding, clearEncoding)); cipherChunks.push(decipher.final(clearEncoding)); return cipherChunks.join(''); }}
JavaScript中AES实现
在JavaScript环境中,推荐使用第三方库Crypto-js来实现AES加密。以下是一个简单的示例:
const CryptoJS = require('crypto-js');// 示例密钥为8字节(128比特)var key = '12345678';// 示例消息var message = '123456';// 加密过程var encrypt = CryptoJS.AES.encrypt(message, CryptoJS.enc.Utf8.parse(key), { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 });console.log('加密结果:' + encrypt.toString(CryptoJS.enc.Base64));// 解密过程var decrypt = CryptoJS.AES.decrypt(encrypt, CryptoJS.enc.Utf8.parse(key), { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 });console.log('解密结果:' + decrypt.toString(CryptoJS.enc.Utf8));
需要注意的是,密钥长度必须为32位整数倍(如8、16或32位),并且在加密时需要自动生成填充内容(如Pkcs7填充)。
以上代码示例适用于ECB模式下的AES加密和解密操作。如果需要其他工作模式(如CBC、OFB等),可以通过修改参数来实现。
发表评论
最新留言
感谢大佬
[***.8.128.20]2025年05月04日 18时40分38秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
04-docker系列-commit构建自定义镜像
2023-01-23
05-docker系列-使用dockerfile构建镜像
2023-01-23
05-如何通过Dockerfile实现高效的应用容器化?
2023-01-23
06-docker系列-使用dockerfile构建nginx、redis镜像
2023-01-23
06-使用dockerfile构建nginx、redis镜像
2023-01-23
07-docker系列-使用dockerfile构建python、jenkins镜像
2023-01-23
07-使用dockerfile构建python、jenkins镜像
2023-01-23
08-docker系列-docker网络你了解多少(上)
2023-01-23
09-docker系列-docker网络你了解多少(下)
2023-01-23
1 解决XP重装后原文件夹拒绝访问
2023-01-23
10-docker系列-docker文件共享和特权模式
2023-01-23
#C2#S2.1# 一个简单的UVM验证平台
2023-01-23
#C8# UVM中的factory机制 #S8.1.2# 到底重载?多态?
2023-01-23
#C8# UVM中的factory机制 #S8.1.3# UVM实战代码再剖析
2023-01-23
#C8# UVM中的factory机制 #S8.1.4# 约束的重载
2023-01-23
#C8# UVM中的factory机制 #S8.2.2# 复杂重载方式
2023-01-24
#C8# UVM中的factory机制 #S8.2.3# 重载sequence哪些情形
2023-01-24
#C8# UVM中的factory机制 #S8.4.1# factory机制的实现
2023-01-24