【2018-06-08】填充模式:PKCS#5/PKCS7 [历史归档]本文原发布于 cstriker1407.info 个人博客内容为历史存档仅供参考。发布时间2018-06-08 标题填充模式PKCS#5/PKCS7分类编程PKCS#5和PKCS#7填充简单笔记填充模式PKCS#5/PKCS7参考链接有大量删减。《 [https://blog.csdn.net/test1280/article/details/75268255](填充模式PKCS#5/PKCS7 参考链接有大量删减。 《 https://blog.csdn.net/test1280/article/details/75268255 》 假设使用PKCS#5进行填充BlockSize是8字节64bit 假设待加密数据长度为x那么将会在后面padding的字节数目为8-(x%8)每个padding的字节值是8-(x%8)。 特别地当待加密数据长度x恰好是8的整数倍也是要在后面多增加8个字节每个字节是0x08。 PKCS#5以及PKCS#7的区别 PKCS#5在填充方面是PKCS#7的一个子集 PKCS#5只是对于8字节BlockSize8进行填充填充内容为0x01-0x08 但是PKCS#7不仅仅是对8字节填充其BlockSize范围是1-255字节。 所以PKCS#5可以向上转换为PKCS#7但是PKCS#7不一定可以转换到PKCS#5用PKCS#7填充加密的密文用PKCS#5解出来是错误的。 1.https://en.wikipedia.org/wiki/Padding_(cryptography) 2.https://en.wikipedia.org/wiki/PKCS 3.https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation 4.https://crypto.stackexchange.com/questions/9043/what-is-the-difference-between-pkcs5-padding-and-pkcs7-padding 5.http://www.cnblogs.com/ryq2014/p/6379153.html 6.http://blog.csdn.net/zsy19881226/article/details/46928177) 》假设使用PKCS#5进行填充BlockSize是8字节64bit假设待加密数据长度为x那么将会在后面padding的字节数目为8-(x%8)每个padding的字节值是8-(x%8)。特别地当待加密数据长度x恰好是8的整数倍也是要在后面多增加8个字节每个字节是0x08。PKCS#5以及PKCS#7的区别PKCS#5在填充方面是PKCS#7的一个子集PKCS#5只是对于8字节BlockSize8进行填充填充内容为0x01-0x08但是PKCS#7不仅仅是对8字节填充其BlockSize范围是1-255字节。所以PKCS#5可以向上转换为PKCS#7但是PKCS#7不一定可以转换到PKCS#5用PKCS#7填充加密的密文用PKCS#5解出来是错误的。1.https://en.wikipedia.org/wiki/Padding_(cryptography)2.https://en.wikipedia.org/wiki/PKCS3.https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation4.https://crypto.stackexchange.com/questions/9043/what-is-the-difference-between-pkcs5-padding-and-pkcs7-padding5.http://www.cnblogs.com/ryq2014/p/6379153.html6.http://blog.csdn.net/zsy19881226/article/details/46928177