建议使用便宜/免费的.NET库来进行带AES加密的Zip?

时间:2008-12-04 13:26:54

标签: c# .net vb.net encryption zip

我正在尝试使用encryption suitable for use by the US Federal Government找到zip压缩和加密组件,因此我无法使用Zip 2.0加密,它必须是AES等。我已经找到了SharpZipLib(无法进行AES加密)和Chilkat(可以进行AES加密,但要花钱)。我错过了其他任何选择吗?

5 个答案:

答案 0 :(得分: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文件。

哦,它是免费的。

答案 1 :(得分:6)

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

答案 2 :(得分:6)

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

答案 3 :(得分:1)

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

答案 4 :(得分:1)

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

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

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

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