正在寻找支持Java和强加密的归档文件

正在寻找支持Java和强加密的归档文件,java,encryption,archive,encryption-symmetric,Java,Encryption,Archive,Encryption Symmetric,我正在寻找一种“标准”归档格式(ZIP、7ZIP等),它由纯Java库支持,并且具有强大的(AES-128)加密 我需要一种格式,人们可以使用现成的Windows和OsX软件进行解密 我的理解是,PKZIP 9.0(ZIP 2.0)之前的ZIP加密非常弱,并且PKWARE从未发布AES-256文件版本 该格式只需支持密钥加密(不需要或不需要公钥) 我不能使用BouncyCastle Open PGP,因为他们的JAR文件必须用密钥签名,我们还需要用Java Web Start的代码签名密钥签名。

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

我需要一种格式,人们可以使用现成的Windows和OsX软件进行解密

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

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


我不能使用BouncyCastle Open PGP,因为他们的JAR文件必须用密钥签名,我们还需要用Java Web Start的代码签名密钥签名。我们的一些客户正在运行旧版本的Java 6(<14),无法升级。14之前的Java 6版本不支持使用多个密钥进行签名。

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

您可以尝试使用库:

主要功能:

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

  • Zip4j是根据Apache许可证2.0版发布的

@Martijn Courtaux:虽然我很喜欢Linux,但我的客户都没有使用它。这确实是一个令人悲哀的事实:因为加密文件看起来是随机的,所以通常压缩很少。最好先压缩,然后加密。您将这两个专家库用于其专家功能的想法是很好的+1@rossum这如何满足OP的要求:“我需要一种格式,人们可以使用现成的Windows和OsX软件进行解密。”?@Marcelo:AES是OP指定的。Zip是现成的。AES的任何使用都需要使用正确的键、填充和IV,因此它将比仅仅单击文件更复杂。@rossum:我使用AES作为示例。我不在乎它使用什么算法,只要它是强大的。我相信原始的ZIP格式使用了一个40位密钥,在2011年的商品硬件上可以在几个小时内破解。对@Ralph来说,重要的是,AES加密显然与WinZip AES格式兼容并可互操作。因此,应该可以使用更高版本的Winzip和7zip对其进行解密。@Marcelo:听起来正是我需要的。我去看看。谢谢。@Marcelo:我试过Zip4J,但它似乎不能为AES加密的ZIP生成正确的CRC,至少不能为WinZip、7Zip或Archiver(OsX)找到正确的CRC。我通读了示例和源代码。似乎将所有AES加密文件的CRC设置为0。无论如何,谢谢你。