AES Padding
博客专区 > lionets 的博客 > 博客详情
AES Padding
lionets 发表于3个月前
AES Padding
  • 发表于 3个月前
  • 阅读 10
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 十分钟定制你的第一个小程序>>>   

AES 作为块加密算法(block cipher),要求被加密数据具有固定的大小,比如16 字节。那么对于一段任意大小的明文,对最后一个块补全到 16 字节就是一个必要的过程。以及在解密时将 padding 字节删除。

那么这里的关键问题便是如何设计这个 padding 方法,使解密后能够只通过明文便可以精准的切掉小尾巴。

容易发现,任何魔法字节都是不可靠的,即 pad 自身必须包含明确的描述 pad 长度的信息。出于同样的考虑,即使原始信息正好膜 16 余 0,pad 也是需要加的,这种情况可以加一个长度 16 的 pad。那么因为 pad 长度最高 16,最小 1,使用一个字节完全可以描述,那么我们可以约定:

每段明文在加密前都会添加一个 1-16 字节的 pad,使总长度膜 16 余 0。
pad 的长度由 pad 的最后一个字节描述

这样就生成了一个可靠的 padding 方法,其实也就是: PKCS7。<-- 这什么破渲染器

不过 PKCS7 在此之上还加了一层改进:就是明确要求 pad 的每个字节都是 pad 长度。这样解密后的明文更加易读。也可以做额外的判断,如果你想的话。

共有 人打赏支持
粉丝 88
博文 91
码字总数 125050
×
lionets
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: