10

我正在尝试找到适合美国联邦政府使用的带有加密的 zip 压缩和加密组件,所以我不能使用 Zip 2.0 加密,它必须是 AES 或类似的。我已经找到了SharpZipLib(不能进行 AES 加密)和Chilkat(可以进行 AES 加密,但要花钱)。我错过了任何其他选择吗?

4

5 回答 5

11

您愿意为 DotNetZip 中的 AES 支付多少费用?;)

DotNetZip 支持 AES 加密,具有 128 位或 256 位密钥。

http://www.codeplex.com/DotNetZip

示例代码:

  using (ZipFile zip = new ZipFile())
  {
    zip.AddFile("ReadMe.txt"); // no password for this entry

    // use a password for subsequent entries
    zip.Password= "This.Encryption.is.FIPS.197.Compliant!";
    zip.Encryption= EncryptionAlgorithm.WinZipAes256;
    zip.AddFile("Rawdata-2008-12-18.csv");
    zip.Save("Backup-AES-Encrypted.zip");
  }

DotNetZip 生成的 AES 加密 zip 文件可以被 WinZip 读取和提取,反之亦然。

您也可以只创建没有加密的常规 zip 文件。

哦,它是免费的。

于 2009-01-04T04:16:50.063 回答
6

如果钱是个大问题,你可以使用像http://www.codeplex.com/DotNetZip这样的开源库,它现在支持 AES

于 2008-12-04T13:32:30.677 回答
6

7-Zip呢?它在 LGPL 下是开源的(因此应该可以在您的项目中使用),并且根据规范它支持带有 AES 加密的 ZIP。

于 2008-12-04T13:32:45.090 回答
1

查看有关Stream Pipeline的这篇很棒的文章。它不仅定义了一种以多线程方式将流相互链接的酷方法,使用的示例是压缩后加密。

于 2008-12-04T17:18:36.587 回答
1

您可以使用 #ZipLib ( https://icsharpcode.github.io/SharpZipLib/ ),它是 DotNetZipLib 的轻量级替代品。

它提供了 FastZip 类,可将使用 AES 加密的 HDD 上的文件夹压缩减少到 2-3 行代码。

请参阅 wiki 以供参考: https ://github.com/icharpcode/SharpZipLib/wiki/FastZip

如果您需要更多功能,#ZipLib 会比 DotNetZipLib 复杂一点,但在我的情况下,后者会创建损坏的 ZIP 文件,所以我还是使用 SharpZipLib。

于 2014-11-17T13:14:00.347 回答