我希望使用C#压缩一些文件(到ZIP格式),并在可能的情况下对其进行加密。有没有什么方法可以做到这一点?
加密是否可以作为压缩本身的一部分完成?
加密是否可以作为压缩本身的一部分完成?
要进行压缩,请查看System.IO.Compression
命名空间,如需进行加密,请查看System.Security.Cryptography
。
我知道这个问题已经很老了,但我还是要发表我的意见。
首先,一些定义:
现在,System.IO.Compression不会进行Zip归档。它执行deflate和gzip压缩,因此会将单个数据块压缩为另一个单个数据块。
因此,如果您正在寻找可以组合多个文件和文件夹的存档格式,则需要像以下Zip库:
GZipStream 类是一种本地处理压缩的方式。
至于加密,有许多 方法 可以做到这一点,其中大部分在System.Security命名空间中。它们可以被链接在一起(加密已压缩的流或压缩已加密的流)。
在C#中没有直接可用的东西,但是你可以使用一些来自J#的库来为你完成它:
http://msdn.microsoft.com/en-us/magazine/cc164129.aspx
应该可以满足你的需求吧?
关于加密方面,请查看以下链接:
http://www.codeproject.com/KB/security/fileencryptdecrypt.aspx