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

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

使用此代码完成压缩 : 使用Android压缩文件(以编程方式) 。

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

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

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

这样我就会复制这个问题的答案(用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/上发布。 它适用于我(zip中的一个文件),并且很好地填补了Java的开源库中的漏洞。

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

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

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

祝你好运!

我搜索了很多,最后find了一个很好的库 ,可以轻松地用密码压缩文件:

压缩:

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