如何创建一个受密码保护的普通ZIP存档?

时间:2011-10-14 20:16:24

标签: android encryption zip

我的应用程序会压缩多个文件,将zip文件保存到SD卡,并将zip文件通过电子邮件发送到一个地址。

使用以下代码完成压缩:Zipping Files with Android (Programmatically)

现在的问题是,如何在zip文件上设置密码,以便在计算机(Windows,Mac或Ubuntu)上打开它的授权人员能够使用提供的密码提取文件?

我读过这篇文章:Android zip file authentication,但听起来拉链的读取是用另一部手机完成的......或者我错了? 如果有人知道请告诉我!谢谢!

2 个答案:

答案 0 :(得分:3)

我搜索了很多,最后找到了一个good library,可以轻松地用密码压缩文件:

<强>邮编:

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编写。

答案 1 :(得分:2)

因为Android有一个JVM,你可以尝试使用你在java中看到的所有lib(有些会运行,有些不会运行,某些库的某些更改也可以)。

通过这种方式,我将复制this问题的答案(用Java编写受密码保护的Zip文件):

  

经过多次搜索,我找到了三种方法:

     

免费提供的一组源代码,适用于单个文件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/。它对我有用(一个文件在   拉链),很好地填补了Java开放源库中的漏洞。

     

商业产品(撰写本文时为500美元)。我无法验证是否   这是有效的,因为他们的试用许可证方法很复杂。它也是一个   移植.NET应用程序:http://www.nsoftware.com/ipworks/zip/default.aspx

     

商业产品(撰写本文时为290美元)。仅适用于   Wnidows使用dll:http://www.example-code.com/java/zip.asp

您还必须知道,将它们调整到Android并不容易,但也许您很幸运,其中一些会立即为您服务

祝你好运!