HSM KitHSM 工具箱
中文

AES 加密详解:模式、填充与最佳实践

加密# AES# 加密# GCM# CBC
最后更新: 2026年4月3日5 分钟阅读By HSM Kit Team
现在需要计算吗?
使用我们免费的在线 AES 加密工具 工具。

AES(高级加密标准)是全球使用最广泛的对称加密算法。无论是加密数据库、保护文件,还是保障网络传输安全,AES 几乎无处不在。本文介绍 AES 的工作原理及正确使用方法。

什么是 AES?

AES 由 NIST 于 2001 年选定,用于替代老化的 DES 算法。它是一种分组密码——使用密钥对固定大小的数据块(128 位 / 16 字节)进行加密。

基本参数:

  • 分组大小:128 位(固定)
  • 密钥长度:128、192 或 256 位
  • 结构:置换-排列网络(SPN)
  • 轮数:10 轮(AES-128)、12 轮(AES-192)、14 轮(AES-256)

AES 密钥长度对比

密钥长度安全级别适用场景
AES-128~128 位安全通用场景,速度快
AES-192~192 位安全较高安全需求
AES-256~256 位安全政府、长期保密数据

AES-128 对所有已知攻击都是安全的。对于需要保密数十年的数据,推荐使用 AES-256。

AES 工作原理(简化版)

AES 通过多个轮次处理数据,每轮包含四个操作:

1. 字节替换(SubBytes)

每个字节通过固定查找表(S-Box)替换,提供混淆性——使密钥与密文之间的关系变得复杂。

2. 行移位(ShiftRows)

4×4 状态矩阵的各行循环移位,提供扩散性——将每个字节的影响扩散开来。

3. 列混淆(MixColumns)

每列在 GF(2⁸) 中与固定多项式相乘,进一步扩散数据。

4. 轮密钥加(AddRoundKey)

当前轮密钥(由主密钥派生)与状态进行 XOR 运算。这是密钥真正参与运算的步骤。

工作模式

AES 每次加密一个 16 字节的分组。对于更长的数据,需要选择工作模式

ECB(电子密码本)—— 大多数场景应避免使用

  • 每个分组独立加密
  • 相同明文分组总产生相同密文分组
  • 问题:数据中的规律在密文中可见(著名的"ECB 企鹅"问题)
  • 仅适用于:单分组加密、密钥封装

CBC(密码分组链接)—— 最常见的传统模式

  • 每个分组加密前先与前一个密文分组 XOR
  • 需要初始化向量(IV)
  • IV 必须随机且每次加密唯一
  • 适用于:文件加密、数据库字段加密

CTR(计数器模式)—— 流密码模式

  • 加密计数器值后与明文 XOR
  • 将 AES 转化为流密码
  • 可并行化,无需填充
  • 适用于:高性能加密、流数据

GCM(Galois/计数器模式)—— 新系统推荐

  • CTR 模式 + 认证标签
  • 同时提供机密性和完整性
  • 自动检测篡改
  • 适用于:TLS、API 加密、所有现代系统

填充

由于 AES 处理 16 字节分组,非 16 字节倍数的数据需要填充。

PKCS#7 填充(最常见):

  • 添加 N 个值为 N 的字节以达到分组边界
  • 示例:13 字节数据 → 添加 3 个 0x03 字节
数据:    48 65 6C 6C 6F(5 字节)
填充后:  48 65 6C 6C 6F 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B(16 字节)

GCM 模式不需要填充(流密码模式)。

IV / Nonce 最佳实践

初始化向量(IV)或 Nonce 对安全性至关重要:

  • 绝不重用同一密钥的 IV
  • CBC 模式:使用随机 16 字节 IV,与密文一起存储
  • GCM 模式:使用随机 12 字节 Nonce,与密文一起存储
  • CTR 模式:使用唯一的计数器/Nonce 组合

重用 IV 会彻底破坏加密安全性。

常见错误

错误后果修复方案
使用 ECB 模式数据规律可见使用 CBC 或 GCM
重用 IV/Nonce安全性被破坏每次加密生成新的随机 IV
硬编码密钥密钥泄露使用密钥管理系统
无认证篡改无法检测使用 GCM 或添加 HMAC
弱密钥派生暴力破解风险基于密码的密钥使用 PBKDF2/bcrypt

AES 在支付系统中的应用

在支付行业,AES 用于:

  • PIN 块加密(AES Format 4,ISO 9564)—— 参见 PIN 块指南
  • DUKPT AES——每笔交易的密钥派生 —— 参见 DUKPT 指南
  • TR-31 密钥块(Version D 使用 AES-256)—— 参见 TR-31 指南
  • MAC 计算(AES-CMAC)

在线工具

使用我们的 AES 加密工具

  • 使用 AES-128/192/256 加密和解密数据
  • 测试所有模式:ECB、CBC、CFB、OFB、CTR
  • 可视化 IV 和填充行为
  • 以十六进制或 Base64 格式导出结果

所有处理均在浏览器中完成——您的密钥和数据不会离开您的设备。

相关工具
AES 加密工具