我的应用程序会压缩多个文件,将zip文件保存到SD卡,并将zip文件通过电子邮件发送到一个地址。
使用以下代码完成压缩:Zipping Files with Android (Programmatically)。
现在的问题是,如何在zip文件上设置密码,以便在计算机(Windows,Mac或Ubuntu)上打开它的授权人员能够使用提供的密码提取文件?
我读过这篇文章:Android zip file authentication,但听起来拉链的读取是用另一部手机完成的......或者我错了? 如果有人知道请告诉我!谢谢!
答案 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并不容易,但也许您很幸运,其中一些会立即为您服务。
祝你好运!