解 释:
在对称加算法的分组加密模式中,要求明文必须是加密块的整数倍,这就要求必须对明文进行填充。备注:对密钥的填充都按照密钥长度采用Zero填充。
填充方式:
1、Zero:先获取需要填充的字节长度 = (块长度 – (数据长度 % 块长度)),再填充字节序列中所有字节填充为0x00
2、ANSIX923 :在填充时首先获取需要填充的字节长度 = (块长度 – (数据长度 % 块长度)),在填充字节序列中最后一个字节填充为需要填充的字节长度值, 填充字节中其余字节均填充数字零。
3、PKCS7/PKCS5:在填充时首先获取需要填充的字节长度 = (块长度 – (数据长度 % 块长度)),在填充字节序列中所有字节填充为需要填充的字节长度值。
4、ISO10126:在填充时首先获取需要填充的字节长度 = (块长度 – (数据长度 % 块长度)),在填充字节序列中最后一个字节填充为需要填充的字节长度值,填充字节中其余字节均填充随机数值。
实 例:
1、Zero:假定块长度为16,数据长度为13,则填充字节数等于3,
数据为: FF FF FF FF FF FF FF FF FF FF FF FF FF
填充结果为:FF FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00
2、ANSIX923 :假定块长度为16,数据长度为13,则填充字节数等于3,
数据为:FF FF FF FF FF FF FF FF FF FF FF FF FF
填充结果为:FF FF FF FF FF FF FF FF FF FF FF FF FF 00 00 03
3、PKCS7/PKCS5:假定块长度为16,数据长度为13,则填充字节数等于3,
数据为: FF FF FF FF FF FF FF FF FF FF FF FF FF
填充结果为:FF FF FF FF FF FF FF FF FF FF FF FF FF 03 03 03
4、ISO10126:假定块长度为16,数据长度为13,则填充字节数等于3,
数据为:FF FF FF FF FF FF FF FF FF FF FF FF FF
填充结果为:FF FF FF FF FF FF FF FF FF FF FF FF FF 81 A6 03