首页/安全/加密与证书速查/PKCS#7 填充规则
本包目录(305 条)
加密算法基础95 条
TLS 与 HTTPS60 条证书与 PKI30 条OpenSSL 实战30 条证书运维排查49 条密钥管理41 条

PKCS#7 填充规则

分组模式对不足一整块的数据补齐规则:填充字节的值等于填充长度,数据正好对齐时追加一整块,TLS 1.0-1.2 的 CBC 套件使用该规则。

加密与证书速查安全更新于 2026-10-12
适用分组模式的块对齐(如 AES-CBC、AES-ECB)
填充值0x01-0x10(等于填充长度)
整块情况追加 16 个 0x10,保证填充必然存在
注意解密后需校验填充合规性

填充示例(块长 16 字节)

填充示例(块长 16 字节)
数据 13 字节 → 追加 03 03 03(共 3 字节)
数据 15 字节 → 追加 01(共 1 字节)
数据 16 字节 → 追加 10×16(完整一个块的 0x10)
PKCS#5 在规范上只定义 8 字节块的填充,AES 场景实际使用 PKCS#7;多数库与文档把二者名称混用,行为一致。

易错点

  • 填充长度字段是攻击面:解密后必须校验填充字节,不能只截断长度就返回数据
  • 不同语言对填充名称不一致(Java 用 PKCS5Padding 指 AES),接口对接时要按实际算法确认

数据来源与参考

  • RFC 5652 §6.3(PKCS#7 填充说明)
  • RFC 8018 §6.1.1(PKCS#5 定义)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌