寻找支持 Java 和强加密的存档 [关闭]

Posted

技术标签:

【中文标题】寻找支持 Java 和强加密的存档 [关闭]【英文标题】:Looking for archive supporting Java and strong encryption [closed] 【发布时间】: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 【参考方案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 年的商品硬件上可以在几个小时内破解。

以上是关于寻找支持 Java 和强加密的存档 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

在 Java 中解压缩包含多个文件和目录的 7zip 存档 [关闭]

Android:android如何支持java? [关闭]

Android 上的 J7zip - 从存档中提取并列出内容

用于 AES 256 加密的(纯)Python 库是啥? [关闭]

寻找支持多种功能的开源 PHP 电子商务系统 [关闭]

寻找 Java Telnet 模拟器 [关闭]