Я знаю, что многие из этих вопросов были заданы. но в моем случае ошибка:
java.security.InvalidAlgorithmParameterException: expected IV length of 0
Я пытаюсь AES 128 CB C mode
код:
byte[] iv = new byte[]{(byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00
, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00};
IvParameterSpec ivParameterSpec = new IvParameterSpec(iv);
SecretKeySpec secretKeySpec = new SecretKeySpec(key, "AES");
Cipher cipher = Cipher.getInstance("AES/ECB/NoPadding");
cipher.init(Cipher.DECRYPT_MODE, secretKeySpec, ivParameterSpec);
byte[] decryptedBytes = cipher.doFinal(encrypted);
return decryptedBytes;
Если я изменяю вектор инициализации что-то вроде этого, как предложенная ошибка:
byte[] iv = new byte[]{};
Я получаю ошибку:
java.security.InvalidAlgorithmParameterException: expected IV length of 16