Как создать обычный защищенный паролем ZIP-архив? - PullRequest
7 голосов
/ 15 октября 2011

Мое приложение архивирует несколько файлов, сохраняет ZIP-файл на SD-карту и отправляет ZIP-файл по электронной почте на адрес.

Зипирование выполняется с помощью этого кода: Архивирование файлов с Android (Программно) .

Теперь вопрос в том, как поместить пароль в zip-файл, чтобы авторизованные пользователи, открывающие его на компьютере (Windows, Mac или Ubuntu), могли извлечьфайлы с предоставленным паролем?

Я прочитал этот пост: Аутентификация zip-файла Android , но мне кажется, что чтение zip выполняется с другого телефона ... или янеправильно?Если кто-нибудь знает, пожалуйста, дайте мне знать!Спасибо!

Ответы [ 2 ]

3 голосов
/ 07 ноября 2017

Я много искал и наконец нашел хорошую библиотеку , которая может легко архивировать файлы с паролем:

Zip:

ZipArchive zipArchive = new ZipArchive();
zipArchive.zip(targetPath,destinationPath,password);

Распаковать:

ZipArchive zipArchive = new ZipArchive();
zipArchive.unzip(targetPath,destinationPath,password);

Rar:

RarArchive rarArchive = new RarArchive();
rarArchive.extractArchive(file archive, file destination);

Документация к этой библиотеке достаточно хорошая, я только добавил несколькопримеры оттуда.Это абсолютно бесплатно и написано специально для Android.

2 голосов
/ 15 октября 2011

, поскольку в Android есть JVM, вы можете попробовать использовать все библиотеки, которые вы видите для java (некоторые будут работать, некоторые нет, а некоторые изменения библиотеки тоже будут в порядке).

Таким образом, я скопирую прошлое этого ответа на вопрос (Напишите Zip-файл, защищенный паролем в Java):

После долгих поисков яМы нашли три подхода:

Свободно доступный набор исходного кода, подходящий для одного файла zip.Тем не менее, нет лицензии.Использование AesZipOutputStream.zipAndEcrypt (...).http://merkert.de/de/info/zipaes/src.zip (https://forums.oracle.com/forums/thread.jspa?threadID=1526137)

ОБНОВЛЕНИЕ: Этот код теперь лицензирован Apache и выпущен на http://code.google.com/p/winzipaes/.Это сработало для меня (один файл в zip-архиве) и хорошо заполняет дыру в библиотеках открытых исходных кодов Java.

Коммерческий продукт ($ 500 на момент написания статьи).Я не могу проверить, работает ли это, поскольку их подход к пробной лицензии сложен.Это также портированное приложение .NET: http://www.nsoftware.com/ipworks/zip/default.aspx

Коммерческий продукт ($ 290 на момент написания).Подходит только для Wnidows, так как использует dll: http://www.example -code.com / java / zip.asp

Вы также должны знать, что, возможно, он выиграл 'Их легко адаптировать под Android, но, может быть, вам повезло, и некоторые из них сразу же будут работать для вас .

Удачи!

...