题
我想压缩一些文件(到 压缩 格式)并在可能的情况下使用 C# 对其进行加密。有什么方法可以做到这一点吗?
加密可以作为压缩本身的一部分来完成吗?
解决方案
对于压缩,请查看 System.IO.Compression
命名空间和加密查看 System.Security.Cryptography
.
其他提示
对于 Zip 压缩,你见过吗 http://www.icsharpcode.net/OpenSource/SharpZipLib/
我知道这个问题已经很老了,但我必须补充两点。
首先,一些定义:
- 压缩:用于将文件和文件夹重新分组为单个文件的存档格式,并可选择加密数据。
- 放气:Zip 文件中用于压缩数据的压缩算法之一。最受欢迎的一款。
- 压缩包:使用 deflate 压缩的单个文件,具有较小的页眉和页脚。
现在,System.IO.Compression 确实 不是 进行 Zip 归档。确实如此 放气 和 压缩包 压缩,因此会将单个数据块压缩为另一个单个数据块。
因此,如果您正在寻找一种可以对许多文件和文件夹进行分组的存档格式,则需要 Zip 库,例如:
- Xceed 邮编 (它确实支持强加密)
- SharpZipLib
奇尔卡特 提供用于压缩和加密的.NET 库。
我不确定这些步骤是否可以合并,但 .NET 对基本加密有很好的支持。这是一个 关于它的文章.
如果无法组合,则先压缩再加密。压缩已经加密的文件将导致压缩率较低,因为大量冗余被删除。
没有任何东西可以直接在 C# 中使用,但是您可以使用 J# 中的一些库来为您完成此操作:
http://msdn.microsoft.com/en-us/magazine/cc164129.aspx
应该只做你想做的事吗?
关于加密,请查看以下链接:
http://www.codeproject.com/KB/security/fileencryptdecrypt.aspx
不隶属于 StackOverflow