C#中是否有压缩和加密库?

时间:2008-09-16 10:36:31

标签: c# encryption compression

我想压缩一些文件(进入ZIP格式)并尽可能使用C#加密它们。有没有办法做到这一点?

加密可以作为压缩本身的一部分来完成吗?

9 个答案:

答案 0 :(得分:12)

对于压缩,请查看System.IO.Compression命名空间,并查看System.Security.Cryptography加密。

答案 1 :(得分:7)

对于Zip压缩,您看过http://www.icsharpcode.net/OpenSource/SharpZipLib/

了吗?

答案 2 :(得分:5)

我知道问题已经过时了,但我必须加上我的两分钱。

首先,一些定义:

  • Zip :用于将文件和文件夹重新组合到单个文件中的存档格式,以及可选的加密数据。
  • Deflate :Zip文件中用于压缩数据的压缩算法之一。最受欢迎的一个。
  • GZip :使用deflate压缩的单个文件,页眉和页脚较小。

现在,System.IO.Compression 执行Zip归档。它会 deflate gzip 压缩,因此会将一个数据块压缩为另一个数据blob。

因此,如果您正在寻找可以对许多文件和文件夹进行分组的存档格式,则需要Zip库,如:

如果您只需要压缩和加密单个blob数据,请查看System.IO.CompressionSystem.Security.Cryptography

答案 3 :(得分:1)

GZipStream类是处理压缩的本地方法。

至于加密,有many ways来做,大多数都在System.Security命名空间中。它们可以链接(加密压缩流或压缩加密流)。

答案 4 :(得分:1)

Chilkat提供用于压缩和加密的.NET库。

答案 5 :(得分:0)

我不确定这些步骤是否可以合并,但.NET对基本加密有很好的支持。这是一个article on it

答案 6 :(得分:0)

如果无法合并,请先进行压缩,然后再进行加密。压缩已加密的文件会导致压缩率不佳,因为会消除大量冗余。

答案 7 :(得分:-1)

这是一个有用的主题:

Help in creating Zip files from .Net and reading them from Java

System.IO.Packaging命名空间为您提供了压缩zip格式和support权限管理数据的有用类。

答案 8 :(得分:-1)

在C#中没有任何东西可以直接使用,但是你可以使用J#中的一些库为你做这些:

http://msdn.microsoft.com/en-us/magazine/cc164129.aspx

应该做你想要的吗?

关于加密,请看一下这些链接:

http://www.codeproject.com/KB/security/fileencryptdecrypt.aspx

http://www.obviex.com/samples/EncryptionWithSalt.aspx