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,直到达到目标字节数,不过想想这种方式就有很大的隐患,可能导致数据的丢失。
本文来自博客园,作者:漫宿骄盛,转载请注明原文链接:https://www.cnblogs.com/msjs/p/18826524
都是顺手发的,写的时候可能有错误,如果发现了,望各位指出。

浙公网安备 33010602011771号