【发布时间】:2012-11-14 08:48:18
【问题描述】:
我已经实现了 AES 加密(作业),但我偶然发现了填充消息的问题。
如果我的消息是这样的字节数组:
public byte[] encrypt(byte[] message) {
int size = (int) Math.ceil(message.length / 16.0);
byte[] result = new byte[size * 16];
for (int i = 0; i < size; i++) {
if ((i+1) * 16 > message.length){
//padding here????
} else {
byte[] block = Arrays.copyOfRange(message, i * 16, (i + 1) * 16);
byte[] encryptedBlock = encryptBlock(block);
System.arraycopy(encryptedBlock, 0, result, i*16, 16);
}
}
return result;
}
我如何填写这样的消息?
我不能使用零填充,因为每个字节都可能为零,并且它可能会影响带有尾随零的此类消息。
我找不到任何关于如何做到这一点的参考,甚至没有 here(描述 AES 加密的论文)
【问题讨论】:
标签: java cryptography aes block padding