PKCS7Padding与PKCS5Padding与ZeroPadding填充规则

1.PKCS7Padding

是给16字节数据填充的如果字节数不足那就在结尾补上(字节数-数据字节数) 个 (字节数-数据字节数)字节

比如:

我的原始数据是:

01 02 03 04 05 06 07 08 09 10

只有十个字节,我距离16个字节还差6个字节,那就在结尾补上6个06

填充后的数据:

01 02 03 04 05 06 07 08 09 10 06 06 06 06 06 06

如果原始数据正好是16个字节,那仍然会填充 16 个 10,填充成一个32字节数据。

这是因为假如你的原始数据是 16个 06,根据这个填充规则,会认为你明文实际是10个 06 ,后面那6个 06 被当成填充数据抛弃了

2.PKCS5Padding

是给8字节数据填充使用的,规则和PKCS7Padding是一样的,不过当数据正好是8字节时,就会填充8个 08 ,变成一个16字节数据

原因和PKCS7Padding相同

3.ZeroPaddin

直接在结尾补00,直到达到目标字节数,不过想想这种方式就有很大的隐患,可能导致数据的丢失。

posted @ 2025-04-15 13:17  漫宿骄盛  阅读(350)  评论(0)    收藏  举报