AES加密解密

密钥(长度须为 16、24 或 32 字节)
模式 / 偏移量(IV)

AES加密解密介绍

AES(Advanced Encryption Standard,高级加密标准)是美国国家标准与技术研究院(NIST)于 2001 年发布的分组密码标准,用来取代早期的 DES。它把明文切分成 16 字节一个的数据块,通过多轮"字节替换、行移位、列混淆、轮密钥加"运算完成加密,是目前应用最广泛的对称加密算法,被 HTTPS、Wi-Fi、磁盘加密、数据库脱敏等几乎所有安全领域采用。

AES 支持 128、192、256 三种密钥长度,对应的加密轮数分别是 10、12、14 轮,密钥越长安全性越高。本工具的密钥长度须为 16、24 或 32 字节:文本格式按 UTF-8 编码取字节(注意一个汉字占 3 字节),也可以切换为 HEX 格式直接输入十六进制字节;支持 ECB 与 CBC 两种模式、PKCS7 填充,加密结果同时给出 HEX 与 Base64 两种密文,解密时自动识别密文格式。

需要说明的是,ECB 模式对每个数据块独立加密,内容相同的块会得到相同的密文,容易泄露数据特征,一般只建议用于加密很短的随机数据(如密钥、手机号);CBC 模式引入偏移量 IV,相同内容每次加密结果都不同,安全性明显更高,是本工具的推荐选项。全部加解密计算均在你的浏览器本地完成,不向服务器上传任何数据,欢迎使用。

常见问题

1. AES密钥长度是多少?提示密钥长度不对怎么办?

AES 密钥必须是 16、24 或 32 字节,分别对应 AES-128、AES-192、AES-256。如果输入的是文本,按 UTF-8 编码计算字节数,一个字母或数字占 1 字节,一个汉字占 3 字节;如果密钥包含中文或长度不合适,可以切换为 HEX 格式,输入 32、48 或 64 位十六进制字符即可。

2. ECB 和 CBC 模式有什么区别?

ECB 模式把每个 16 字节块独立加密,相同明文块输出相同密文块,会泄露数据的排列特征,例如经典的"ECB 企鹅"图片加密后仍能看出轮廓;CBC 模式让每个块先与前一块的密文异或再加密,并配合一个 16 字节的初始偏移量 IV,相同内容每次加密结果都不同,安全性更高。日常使用建议选择 CBC 模式。

3. 为什么同一个内容加密两次结果不一样?

CBC 模式下密文与 IV 相关,更换 IV 后同一明文与密钥也会得到不同密文,这是正常且更安全的表现,解密时只要密钥与 IV 正确即可还原。ECB 模式下同一明文与密钥的加密结果则是固定的。另外,PKCS7 填充会在明文末尾补足整块,即使明文恰好是 16 字节的整数倍也会额外补一整块,这也是密文比明文长的原因。

4. 解密失败提示密钥不匹配是什么原因?

常见原因有:密钥或 IV 与加密时不一致、密钥格式选错(文本与 HEX 混用)、模式选错(加密用 CBC 解密却选了 ECB)、密文复制不完整或混入空格换行。请逐项核对加密时的参数;解密前会自动校验 PKCS7 填充,参数不对时会给出失败提示而不是输出乱码。

5. 在线AES加密会上传我的数据吗?

不会。本工具的加密与解密均在你的浏览器本地计算完成,输入内容不会发送到任何服务器,断网状态下同样可以正常使用。