繁体   English   中英

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

[英]Are there any compression and encryption libraries in C#?

我想压缩一些文件(转换为ZIP格式)并使用C#加密它们。 有办法做到这一点吗?

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

有关压缩,请查看System.IO.Compression命名空间,有关加密,请查看System.Security.Cryptography

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

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

首先,一些定义:

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

现在,System.IO.Compression 不做邮编归档。 它会进行deflategzip压缩,因此会将单个数据块压缩为另一个数据块。

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

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

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

至于加密,有很多 方法可以做到,其中大部分都在System.Security命名空间中。 它们可以链接(加密压缩流或压缩加密流)。

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

我不确定这些步骤是否可以组合,但.NET对基本加密有很好的支持。 这是一篇关于它文章

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

这是一个有用的主题:

帮助从.Net创建Zip文件并从Java读取它们

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

没有任何东西可以直接在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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM