当前位置: 首页 > news >正文

AES (高级加密标准)

原理详解
AES是一种对称加密算法,使用相同的密钥进行加密和解密。它采用替代-置换网络(SPN)结构,主要步骤包括:

密钥扩展:从初始密钥派生多轮密钥
初始轮:AddRoundKey(轮密钥加)
主轮(重复9-13次):
SubBytes(字节替换)
ShiftRows(行移位)
MixColumns(列混淆)
AddRoundKey
最终轮(省略MixColumns)
AES有三种密钥长度:128位、192位和256位,分别对应10、12和14轮加密。

应用场景
HTTPS传输中的数据加密
数据库敏感字段加密
文件加密存储
实战代码(Node.js)

const crypto = require('crypto');// AES-256-CBC加密
function encrypt(text, key, iv) {const cipher = crypto.createCipheriv('aes-256-cbc', Buffer.from(key), iv);let encrypted = cipher.update(text);encrypted = Buffer.concat([encrypted, cipher.final()]);return encrypted.toString('hex');
}// AES-256-CBC解密
function decrypt(encryptedText, key, iv) {const encryptedBuffer = Buffer.from(encryptedText, 'hex');const decipher = crypto.createDecipheriv('aes-256-cbc', Buffer.from(key), iv);let decrypted = decipher.update(encryptedBuffer);decrypted = Buffer.concat([decrypted, decipher.final()]);return decrypted.toString();
}// 使用示例
const key = crypto.randomBytes(32); // 256位密钥
const iv = crypto.randomBytes(16);  // 初始向量
const message = 'Secret Message';const encrypted = encrypt(message, key, iv);
console.log('Encrypted:', encrypted);const decrypted = decrypt(encrypted, key, iv);
console.log('Decrypted:', decrypted);

相关文章:

  • 大模型在胆管结石(无胆管炎或胆囊炎)预测及治疗方案制定中的应用研究
  • OpenCV 边缘检测(Edge Detection)cv2.Canny
  • Spring源码中关于抽象方法且是个空实现这样设计的思考
  • 剑指Offer(数据结构与算法面试题精讲)C++版——day16
  • OpenCSG AutoHub v0.5.0 版本发布
  • 关于数组处理优化的一次讨论
  • 使用Python可视化洛伦兹变换
  • LeetCode 打家劫舍+删除并获得点数
  • ROS机器人开发实践->机器人建模与仿真
  • 【Linux学习笔记】Linux的环境变量和命令行参数
  • LeetCode[232]用栈实现队列
  • Android学习之实战登录注册能力
  • 分布自定义shell脚本(详写)附带全代码
  • 【OC】AVPlayerLayer的学习
  • 深入解析主流数据库体系架构:从关系型到云原生
  • 从malloc到free:动态内存管理全解析
  • 【某比特币网址请求头部sign签名】RSA加密逆向分析
  • 在 Linux 上部署 .NET Core 应用并配置为开机自动启动
  • select、poll、epoll实现多路复用IO并对比差异
  • 家庭电脑隐身后台自动截屏软件,可远程查看
  • 海南一男子涨潮时赶海与同伴走散,警民协同3小时将其救上岸
  • 马上评丨敦煌网美国爆火,“市场之腿”总能跨越关税壁垒
  • 特朗普:“百分之百”相信能与欧盟达成贸易协议
  • 《素食者》的植物隐喻仍暗含“肉食”逻辑
  • 多家期刊就AI辅助写作表态:不想让放弃思考毁了一代人
  • 当美国掀翻了自己的全球化牌桌