Я новичок в java. Я делаю шифрование и дешифрование видеофайлов. Когда я предоставляю ключ небольшой длины, он отлично работает без каких-либо ошибок. Если я дал ключ большей длины, это порождает ошибку.Неверный AES Длина ключа: 39bytes
private static void doCrypto(int cipherMode, String key, File inputFile,
File outputFile) throws CryptoException {
try {
Key secretKey = new SecretKeySpec(key.getBytes(), "AES");
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
cipher.init(cipherMode, secretKey);
FileInputStream inputStream = new FileInputStream(inputFile);
byte[] inputBytes = new byte[(int) inputFile.length()];
inputStream.read(inputBytes);
byte[] outputBytes = cipher.doFinal(inputBytes);
FileOutputStream outputStream = new FileOutputStream(outputFile);
outputStream.write(outputBytes);
inputStream.close();
outputStream.close();
} catch(NoSuchPaddingException|NoSuchAlgorithmException|InvalidKeyException | BadPaddingException| IllegalBlockSizeException | IOException ex) {
throw new CryptoException("Error encrypting/decrypting file",ex);
}
Я получаю ошибку, вызванную: java.security.InvalidKeyException: Invalid AES key length: 39 bytes
Пожалуйста, помогите мне исправить ошибку в коде ниже
Я получаю java.lang.ArrayIndexOutOfBoundsException ошибки: 10 –
Я обновил свой код. Должен теперь работать правильно – jAC
Спасибо за ответ Janes. Его работы прекрасны. Когда я дешифрую файл, он говорит, что параметры отсутствуют. –