При проверке код работает ровно так, как сказано по условию задачи. Порядок тоже +/- такой как в условии указано.
ЧЯДНТ?
пока сам вижу ошибку лишь в том, что закрытие потоков надо будет вынести за пределы if. это баг получился в результате попыток ублажить валидатор...
package com.javarush.task.task18.task1826;
/*
Шифровка
*/
import javax.crypto.*;
import javax.crypto.spec.SecretKeySpec;
import java.io.*;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;
public class Solution {
public static void main(String[] args) throws IOException, NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException {
String param = args[0];
String fileName = args[1];
String fileOutputName = args[2];
InputStream inputStream = new BufferedInputStream(new FileInputStream(fileName));
FileOutputStream outputStream = new FileOutputStream(fileOutputName);
String key = "DX8m8yrrqaKDfpyAdZn7VQ";
byte[] encoded = Base64.getDecoder().decode(key);
SecretKey secretKey = new SecretKeySpec(encoded, "AES");
if (param.equals("-e")){
Cipher cipher = Cipher.getInstance("AES");
int count;
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
CipherOutputStream cipherOutputStream = new CipherOutputStream(outputStream, cipher);
while ((count = inputStream.read()) != -1){
cipherOutputStream.write(count);
}
inputStream.close();
cipherOutputStream.close();
}
else if (param.equals("-d")){
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.DECRYPT_MODE, secretKey);
InputStream cipherInputStream = new BufferedInputStream(new CipherInputStream(inputStream, cipher));
int count;
while ((count = cipherInputStream.read()) != -1) {
outputStream.write(count);
}
cipherInputStream.close();
outputStream.close();
}
}
}