Создать защищенный паролем почтовый файл в Java, не создавая его на диске - PullRequest
0 голосов
/ 03 октября 2019

Мне нужно создать ZIP-файл. Он должен быть защищен паролем. Я использую лингала банку. Вот мой ниже. Есть ли способ сделать это? Я даже попробовал zipoutstream, не мог найти способ добавить пароль.

@Component
public class FileZipUtils {

    @Value("${candela.email.zip.folder}")
    private String zipBaseDir;

    @Value("${candela.email.zip.encryptionmethod:AES}")
    private String encryptionMethod;

    @Value("${candela.email.zip.encryptionstrength:KEY_STRENGTH_128}")
    private String encryptionStrength;

    private ZipParameters zipParameters;

    @PostConstruct
    private void initializeZipProperties() {
        zipParameters = new ZipParameters();
        zipParameters.setEncryptFiles(true);
        zipParameters.setEncryptionMethod(EncryptionMethod.AES);
        zipParameters.setAesKeyStrength(AesKeyStrength.KEY_STRENGTH_128);
    }

    /*
     * Creates a zipfile in the zipBaseDir location
     */
    public ZipFile createZipFile(String zipFileName,char[] password) {
        return new ZipFile(zipBaseDir + "/" + zipFileName,password);
    }

    /**
     * Adds attachment to Zip file
     */
    public void addAttachementToZip(ZipFile zipFile, ByteArrayResource fileContentInBytes, String fileName)
            throws IOException {
        zipParameters.setFileNameInZip(fileName);
        zipFile.addStream(fileContentInBytes.getInputStream(), zipParameters);
    }

}

Ответы [ 2 ]

0 голосов
/ 04 октября 2019

Я не мог найти никакого решения. Я думаю, что нам нужно создать файл на диске.

0 голосов
/ 03 октября 2019

Лучшее решение для zip-файлов zip4j lib. ( Github Link )

Особенности:

  • Создание, добавление, извлечение, обновление, удаление файлов из Zip-файла
  • Поддержка потоков(ZipInputStream и ZipOutputStream)
  • Чтение / запись защищенных паролем Zip-файлов и потоков
  • Поддержка методов шифрования AES и Zip-Standard
  • Поддержка формата Zip64
  • Сохранение (без сжатия) и метод сжатия Deflate
  • Создание или извлечение файлов из файлов Split Zip (например, z01, z02, ... zip)
  • Поддержка имен файлов Unicode и комментариевв zip
  • Progress Monitor - для интеграции в приложения и приложения, ориентированные на пользователя
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...