Получить тот же формат входного файла после Encryt -> base64 Encode -> Encrypted file -> base64decode -> Decrypt ---> расшифрованный файл - PullRequest
0 голосов
/ 27 февраля 2020

Я преобразую текстовый файл в файл en c следующим образом:

  1. Прочитать поток ввода файла.
  2. Шифрование
  3. Кодирование с использованием базы 64.
  4. Используйте поток вывода файла для записи в файл .en c.
  5. Чтение .en c файла через поток ввода файлов
  6. Декодирование с использованием базы 64.
  7. de crypt
  8. Использование потока вывода файла для записи в текст файл.

Я не могу получить тот же формат вывода, что и входной файл. Вывод такой же.

//Encrypt
inFile = new FileInputStream(path + "/" + fileName);
outFile = new FileOutputStream(encfileName);
byte[] input = new byte[64];
            int bytesRead;
            while ((bytesRead = inFile.read(input)) != -1) {
                byte[] output = cipher.update(input, 0, bytesRead);
                if (output != null)

                    outFile.write(Base64.getEncoder().encode(output));
            }

            byte[] output = cipher.doFinal();
            if (output != null)
                outFile.write(Base64.getEncoder().encode(output));

//Decrypt
fis = new FileInputStream(path + "/" + encryptedFile);
            fos = new FileOutputStream(decryptedFile);
            byte[] in = new byte[64];
            int read;
            while ((read = decoder.wrap(fis).read(in)) != -1) {
                byte[] output = cipher.update(in, 0, read);
                if (output != null)
                    fos.write(output);
            }

            byte[] output = cipher.doFinal();
            if (output != null)
                fos.write(output);



Есть предложения?

1 Ответ

0 голосов
/ 27 февраля 2020

Используйте также упаковочный кодер. Как и вы, вы вставляете символы заполнения и символы base64, частично содержащие биты, в зашифрованные данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...