我想在CBC模式下使用AES 256算法。该算法在内存中运行良好(加密和解密),但如果我将加密的字符串保存到文件中,则解密算法会失败,但会出现以下异常:
javax.crypto.IllegalBlockSizeException: Input length must be multiple of 16 when decrypting with padded cipher
我的解密逻辑
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
cipher.init(Cipher.DECRYPT_MODE, key, iv);
byte[] raw = Base64.decodeBase64(encryptedString);
byte[] stringBytes = cipher.doFinal(raw);
String decryptedString = new String(stringBytes, "UTF8");
return decryptedString;
思想?
答案 0 :(得分:1)
如果您的代码在内存中工作,那么您可以测试以下链:
永远进行单元测试!