我想压缩一些文件(进入ZIP格式)并尽可能使用C#加密它们。有没有办法做到这一点?
加密可以作为压缩本身的一部分来完成吗?
答案 0 :(得分:12)
对于压缩,请查看System.IO.Compression
命名空间,并查看System.Security.Cryptography
加密。
答案 1 :(得分:7)
对于Zip压缩,您看过http://www.icsharpcode.net/OpenSource/SharpZipLib/
了吗?答案 2 :(得分:5)
我知道问题已经过时了,但我必须加上我的两分钱。
首先,一些定义:
现在,System.IO.Compression 不执行Zip归档。它会 deflate 和 gzip 压缩,因此会将一个数据块压缩为另一个数据blob。
因此,如果您正在寻找可以对许多文件和文件夹进行分组的存档格式,则需要Zip库,如:
如果您只需要压缩和加密单个blob数据,请查看System.IO.Compression和System.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