我有一个Cipher aesEncryptCipher
使用 AES/CBC/PKCS5Padding 的加密模式。
为什么以下两个函数返回两个不同的东西?的返回值encrypt2
是什么意思?根据javadoc,它应该返回“带有结果的新缓冲区”,我认为这意味着“加密字节”。
public byte[] encrypt(byte[] rawBytes) {
aesEncryptCipher.doFinal(rawBytes);
return rawBytes;
}
public byte[] encrypt2(byte[] rawBytes) {
return aesEncryptCipher.doFinal(rawBytes);
}
使用一些初始化向量和密钥,
encrypt("xxx".getBytes("UTF-8"));
returns [120, 120, 120]
encrypt2("xxx".getBytes("UTF-8"));
returns [-76, 22, 46, 63, -16, -29, 56, -85, -115, -77, 11, 16, -56, 95, 20, 29]