我想压缩一些文件(成ZIP格式)并尽可能使用 C# 加密它们。有没有办法做到这一点?
加密可以作为压缩本身的一部分进行吗?
对于压缩,查看System.IO.Compression
命名空间,对于加密,查看System.Security.Cryptography
.
对于 Zip 压缩,你看过http://www.icsharpcode.net/OpenSource/SharpZipLib/
我知道这个问题已经很老了,但我必须加上我的两分钱。
首先,一些定义:
现在,System.IO.Compression 不进行Zip 归档。它确实进行了deflate和gzip压缩,因此会将单个数据块压缩成另一个数据块。
因此,如果您正在寻找可以对许多文件和文件夹进行分组的存档格式,您需要 Zip 库,例如:
如果您只需要压缩和加密单个数据块,请查看System.IO.Compression和System.Security.Cryptography。
GZipStream类是处理压缩的本机方式。
至于加密,有很多 方法可以做到,其中大部分在 System.Security 命名空间中。它们可以链接完成(加密压缩流或压缩加密流)。
Chilkat提供用于压缩和加密的 .NET 库。
我不确定这些步骤是否可以组合,但.NET 对基本加密有很好的支持。这是一篇关于它的文章。
如果不能合并,先压缩再加密。压缩已经加密的文件会导致压缩率变差,因为很多冗余被删除了。
没有任何东西可以直接在 C# 中使用,但是您可以使用 J# 中的一些库来为您完成:
http://msdn.microsoft.com/en-us/magazine/cc164129.aspx
应该做你想做的事吗?
关于加密,请查看以下链接:
http://www.codeproject.com/KB/security/fileencryptdecrypt.aspx