使用基于Zip 2.0加密的密码加密zip文件

3
我正在尝试使用基于早期Zip 2.0加密的密码,在Java(1.6)中压缩和加密文件。我已经使用AES 256位加密成功地加密了zip文件并设置了密码。
虽然AES是一种更强大和更安全的加密标准,但我需要找到一种更广泛支持的标准,以便所有zip客户端都能够更高成功率地打开受密码保护的zip文件。因此,我正在寻找一些基于Zip 2.0的加密来加密我的文件。感谢您的帮助!

对于现在(2013年末)阅读此问题的任何人:不要使用内置的ZIP加密,它极其不安全,并且可以在一小时内被任何半靠谱的程序员破解。 - pg1989
2个回答

1
你可以尝试使用Zip4j,这是一个纯Java库,用于处理zip文件。它支持PKWare和AES加密方法的加密/解密。

http://www.lingala.net/zip4j/

主要功能:

  • 创建、添加、提取、更新、删除 Zip 文件中的文件
  • 读取/写入受密码保护的 Zip 文件
  • 支持 AES 128/256 加密
  • 支持标准 Zip 加密
  • 支持 Zip64 格式
  • 支持存储(无压缩)和 Deflate 压缩方法
  • 创建或从分割的 Zip 文件(例如 z01、z02、...zip)中提取文件
  • 支持 Unicode 文件名
  • 进度监视器

许可证:

  • Zip4j 发布在 Apache 许可证下,版本为 2.0

-1

我认为几乎所有的zip客户端都支持WinZip-AES加密。由于WinZip比原始pkzip更广泛地传播,它的加密已成为事实上的标准。 您是否有不支持AES加密的特定客户端?


嗨,Sven, 到目前为止,我已经收到了来自Windows上的7-zip v4.65和Linux上的unzip实用程序的投诉。 我不确定回到旧的加密标准是否是一个好主意,但我想我可以使用一个标准,以确保在更多的zip客户端上取得良好的成功水平。谢谢。 - Pokemon
你确定7-zip的版本是v4.65吗?v4.64修复了AES加密zip文件解密中的一个错误: http://www.7-zip.org/history.txt - Sven Lilienthal
实际上,即使现在,AES加密也并不是普遍被支持的。例如,J2SE本身就不支持WinZip AES加密。而我认为sharpziplib也不支持。WinZip AES可能是最广泛支持的zip文件加密机制,但zip2.0加密比WinZip AES更受广泛支持。 - Cheeso

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接