/**
* PKCS7填充
* @param sourceData 原文数据对应的字节数组
* @param blockSize 分组大小(比如国密SM4算法的分组大小是16字节)
* @return
*/
public static byte[] PKCS7Padding(byte[] sourceData, int blockSize) {
int newLong = (sourceData.length / blockSize + 1) * blockSize;
byte[] ret = new byte[newLong];
System.arraycopy(sourceData, 0, ret, 0, sourceData.length);
for (int i = sourceData.length; i < ret.length; ++i) {
ret[i] = (byte) (ret.length - sourceData.length);
}
return ret;
}
public static void main(String[] args) {
String str = "1";
// 使用PKCS7填充
byte[] b1 = PKCS7Padding(str.getBytes(), 16);
System.out.println("填充后的大小(byte):" + b1.length + " 填充后的数据(经过Base64编码):" + Base64.getEncoder().encodeToString(b1));
}
java使用PKCS7填充
原创
©著作权归作者所有:来自51CTO博客作者想买CT5的小曹的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章