我需要压缩和密码保护文件.有一个好的(免费)图书馆吗?
这需要由第三方打开,因此密码保护需要使用标准工具.
您可以尝试Zip4j,一个纯java库来处理zip文件.它支持PKWare和AES加密方法的加密/解密.
主要特点:
从Zip文件创建,添加,提取,更新,删除文件
读/写密码保护的Zip文件
支持AES 128/256加密
支持标准Zip加密
支持Zip64格式
支持存储(无压缩)和Deflate压缩方法
从Split Zip文件创建或提取文件(例如:z01,z02,... zip)
支持Unicode文件名
进度监视器
执照:
Zip4j是在Apache License 2.0版下发布的.
经过多次搜索,我发现了三种方法:
免费提供的一组源代码,适用于单个文件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
这不是一个答案,但在评估潜在解决方案时要谨记这一点.
关于zip加密的一个非常重要的事情:
有几种类型的zip加密.旧的类型(原始拉链标准的一部分)根本不值得打扰(它可以在不到10分钟内通过在线轻松获得的应用程序进行破解).
如果您正在对zip文件进行任何加密,请确保使用强加密标准之一(我相信WinZip的128位和256位AES标准是最好的支持).以下是技术规格 - 我们在开发自己的Java加密zip系统时使用了这个(不能提供源代码 - 抱歉 - 它仅供内部使用)
唯一比没有加密更糟的是认为你有加密和错误:-)