Androidpkcs#5填充和pkcs#7填充比较

Posted LittleEyes

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Androidpkcs#5填充和pkcs#7填充比较相关的知识,希望对你有一定的参考价值。

1.相同点:

pkcs#5填充和pkcs#7填充算法没有任何区别。

 

他们的填充字符串由一个字节序列组成,每个字节填充该填充字节序列的长度。

假定块长度为 8,数据长度为 9,
数据: FF FF FF FF FF FF FF FF FF
PKCS7 填充: FF FF FF FF FF FF FF FF FF 07 07 07 07 07 07 07

简单地说, PKCS5, PKCS7和SSL3, 以及CMS(Cryptographic Message Syntax)

有如下相同的特点:
1)填充的字节都是一个相同的字节
2)该字节的值,就是要填充的字节的个数

如果要填充8个字节,那么填充的字节的值就是0×8;
要填充7个字节,那么填入的值就是0×7;

如果只填充1个字节,那么填入的值就是0×1;

恰好8个字节时还要补8个字节的0×08

正是这种即使恰好是8个字节也需要再补充字节的规定,可以让解密的数据很确定无误的移除多余的字节。

 

2.不同点:

在PKCS5Padding中,明确定义Block的大小是8位,而在PKCS7Padding定义中,对于块的大小是不确定的,可以在1-255之间(块长度超出255的尚待研究)。






以上是关于Androidpkcs#5填充和pkcs#7填充比较的主要内容,如果未能解决你的问题,请参考以下文章

AES补位填充的一个问题

RSA PKCS1 填充方式

pkcs1padding怎么填充

pkcs5填充

采用CBC模式+PKCS7填充方式对称加密

三种填充模式的区别(PKCS7Padding/PKCS5Padding/ZeroPadding)