我试图在Java中使用AES加密文件,但它无法正常工作。我放了一些印刷品来看它失败的地方,前两个印刷但不是第三个。我检查了密钥和IV是正确的大小,分别是256位和128位。如果它们都有效,我不知道还有什么可能出错。我的代码中有任何明显的错误吗?我以前没有这样做过。非常感谢任何帮助!
public static String encryptAES(byte[] data, byte[] key, byte[] iv) throws Exception {
Key k = new SecretKeySpec(key, "AES");
System.out.println("key set");
Cipher c = Cipher.getInstance("AES/CBC/PKCS5PADDING");
System.out.println("cipher created");
c.init(Cipher.ENCRYPT_MODE, k, new IvParameterSpec(iv));
System.out.println("cipher initialised");
byte[] encryptedDataBytes = c.doFinal(data);
String encryptedData = Base64.getEncoder().encodeToString(encryptedDataBytes);
return encryptedData;
}