特点: 加密和解密使用同一密钥
密钥长度: 128位、192位、256位
目前最广泛使用的对称加密算法
应用: HTTPS、VPN、文件加密
模式 | 全称 | 安全性 | 并行性 | 填充需求 | 认证功能 | 主要特点与适用场景 |
---|---|---|---|---|---|---|
ECB | Electronic Codebook | 低(不推荐) | 支持 | 需要 | 无 | 简单、相同明文块密文相同,易泄密(不要IV) |
CBC | Cipher Block Chaining | 较高 | 解密可并行 | 需要 | 无 | 常用,需IV,错误传播,适合文件加密 |
CFB | Cipher Feedback | 较高 | 不支持 | 不需要 | 无 | 流加密,适合实时数据 |
OFB | Output Feedback | 较高 | 支持 | 不需要 | 无 | 流加密,错误不传播,适合有噪声信道 |
CTR | Counter | 高 | 支持 | 不需要 | 无 | 支持并行,效率高,需唯一计数器 |
GCM | Galois/Counter Mode | 很高 | 支持 | 不需要 | 有 | 加密+认证,效率高,现代通信首选 |
XTS | XEX-based Tweaked Codebook | 高 | 支持 | 不需要 | 无 | 专为磁盘加密设计,支持随机访问 |
填充模式 | 描述说明 |
---|---|
PKCS#7(最常用) | 不足N字节就填充N个字节的N,如:3个字节 ➔ \x03\x03\x03 |
PKCS#5 | PKCS#7 的一个子集,仅用于8字节块(AES其实是16字节) |
Zero Padding | 用\x00 填充到块长度;不能用于有结尾0的明文 |
ANSI X.923 | 用\x00...\x00N ,最后一个字节为填充长度 |
ISO/IEC 7816-4 | 先填一个\x80 ,其余用\x00 |
NoPadding | 不填充,但要求输入必须是块大小整数倍(常用于手动处理或CTR等模式) |
特点: 使用公钥加密,私钥解密
特点: 不可逆转换,输出固定长度值
块加密模式,每个块与前一块相关
需要初始化向量(IV)
提供认证和加密(AEAD)
高效、安全,广泛使用
将块密码转为流密码
支持并行加密