AES加密/解密工具
配置
AES在线加解密工具 | 高级加密标准工具
在线AES加密工具,支持128/192/256位密钥,多种模式(CBC/ECB/CFB/OFB/CTR/GCM)和各种填充方式。专业的密码学计算器。
AES加密知识
什么是 AES?
AES(高级加密标准)是目前最流行的对称加密算法,由比利时密码学家Joan Daemen和Vincent Rijmen设计。它采用分组密码体制,以128位(16字节)为一个分组大小进行加密。支持128位、192和256位三种密钥长度,分别需要进行10轮、12轮和14轮加密。每一轮包括字节替代、行移位、列混合和轮密钥加这四个步骤。AES的主要优点是安全性高、计算效率好、内存需求低。
工作模式详解
CBC(密码块链接)模式
CBC是最常用的加密模式之一。它将明文分成固定大小的块,每个块在加密前会与前一个密文块进行XOR运算。对于第一个块,则使用一个初始向量(IV)进行XOR。这种链式结构使得每个密文块都依赖于它之前的所有明文块,提高了安全性。主要特点: - 相同的明文块会产生不同的密文块 - 加密过程不能并行化,但解密可以并行 - 需要进行填充 - 一个块的错误会影响后续所有块的解密
ECB(电子密码本)模式
最基础的加密模式,直接将明文块加密成密文块,没有额外的处理。主要特点: - 相同的明文块会产生相同的密文块 - 加密和解密都可以并行处理 - 需要填充 - 安全性较低,不推荐用于大多数场景
CFB(密码反馈)模式
将块密码转换为流密码,可以逐位或逐字节加密。加密时,先加密前一个密文块(初始使用IV),将结果与当前明文块进行XOR得到密文。特点: - 不需要填充 - 支持实时加密 - 错误会传播 - 加密不能并行,解密可以并行
OFB(输出反馈)模式
类似CFB,但是加密前一个密文块的结果直接用作下一个块的输入,与明文进行XOR。特点: - 不需要填充 - 加密解密使用相同操作 - 可以预先生成密钥流 - 不会产生错误传播
CTR(计数器)模式
使用递增的计数器值进行加密,将结果与明文XOR得到密文。特点: - 支持并行处理 - 不需要填充 - 可以随机访问 - 安全性高,但需要确保计数器值不重复
GCM(伽罗瓦/计数器)模式
GCM是一种认证加密模式,结合了CTR模式的加密和GHASH的认证功能。特点: - 提供数据加密和认证 - 支持附加认证数据(AAD) - 可并行处理 - 生成认证标签验证数据完整性 - 不需要填充
填充模式详解
PKCS7填充
最常用的填充方式。如果需要填充n个字节,则每个字节填充数字n。例如,需要填充3个字节,则填充:03 03 03
ISO10126填充
除最后一个字节外,用随机数据填充。最后一个字节表示填充的字节数。这种方式增加了安全性,因为填充的内容是不可预测的
ANSIX923填充
用0填充,最后一个字节表示填充的字节数。例如,需要填充3个字节,则填充:00 00 03
ISO97971填充
先填充一个1,然后用0填充。这种方式确保了能够准确地移除填充
ZeroPadding填充
简单地用0填充到块大小。这种方式可能会导致歧义,特别是当原文末尾本身包含0时
NoPadding(无填充)
不进行任何填充,要求数据长度必须是块大小的整数倍。使用时需要特别注意数据长度