【问题标题】:Looking for archive supporting Java and strong encryption [closed]寻找支持 Java 和强加密的存档 [关闭]
【发布时间】:2011-08-24 19:43:28
【问题描述】:

我正在寻找一种纯 Java 库支持并具有强 (AES-128) 加密的“标准”存档格式(ZIP、7ZIP 等)。

我需要一种人们可以使用适用于 Windows 和 OsX 的现成软件解密的格式。

我的理解是 PKZIP 9.0 (Zip 2.0) 之前的 ZIP 加密非常弱,而且 PKWARE 从未发布过 AES-256 文件版本。

该格式只需要支持密钥加密(不需要或不需要公钥)。

我不能使用 BouncyCastle Open-PGP,因为他们的 JAR 文件必须使用他们的密钥进行签名,而且我们还需要使用我们的 Java Web Start 代码签名密钥进行签名。我们的一些客户正在运行旧版本的 Java 6 (

【问题讨论】:

  • @Martijn Courteaux:尽管我很喜欢 Linux,但我的客户没有使用它。
  • 这确实是一个可悲的生活事实:D

标签: java encryption archive encryption-symmetric


【解决方案1】:

您可以尝试使用Zip4j 库:

主要特点:

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

许可证:

  • Zip4j 在 Apache 许可证 2.0 版下发布。

【讨论】:

  • 对于@Ralph 来说很重要的是,AES 加密显然与 WinZip AES 格式兼容并可互操作。因此,它应该可以使用更高版本的 Winzip 和 7zip 解密。
  • @Marcelo:这听起来正是我需要的。我会检查一下。谢谢。
  • @Marcelo:我试过 Zip4J,但它似乎没有为 AES 加密的 ZIP 生成正确的 CRC,至少不是 WinZip、7Zip 或 Archiver (OsX) 认为正确的 CRC。我通读了示例和源代码。似乎将所有 AES 加密文件的 CRC 设置为 0。无论如何,谢谢。
【解决方案2】:

也许我对您的项目了解不够,但您为什么不使用默认的 Java API 创建您的 zip。然后使用 AES-128 加密 zip。或者,如果您愿意,您可以先加密内容,然后再压缩。

【讨论】:

  • 由于加密文件看起来是随机的,它通常压缩得很少。先压缩然后加密可能更好。您将两个专业库用于其专业功能的想法是一个很好的 +1
  • @rossum 这如何满足这个 OP 的要求:“我需要一种人们可以使用 Windows 和 OsX 的现成软件解密的格式。”?
  • @Marcelo:AES 由 OP 指定。 Zip 是现成的。任何使用 AES 都需要使用正确的密钥、填充和 IV,因此它会比单击文件更复杂。
  • @rossum:我以 AES 为例。只要它强大,我不在乎它使用什么算法。我相信最初的 ZIP 格式使用了 40 位密钥,在 2011 年的商品硬件上可以在几个小时内破解。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-02
  • 2010-10-09
  • 2010-11-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多