【问题标题】:Are there any compression and encryption libraries in C#?C#中是否有任何压缩和加密库?
【发布时间】:2010-09-09 10:08:21
【问题描述】:

我想压缩一些文件(成ZIP 格式)并尽可能使用C# 加密它们。有没有办法做到这一点?

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

【问题讨论】:

    标签: c# encryption compression


    【解决方案1】:

    对于压缩,查看System.IO.Compression 命名空间,对于加密,查看System.Security.Cryptography

    【讨论】:

    • 注意:System.IO.Compression 非常适合压缩单个文件。它不会将多个源文件压缩到单个 zip '存档'中。
    • 我一直在 System.IO.Compression (.Net 4.6) 中使用 ZipFile.CreateFromDirectory,它从指定目录中的文件创建单个 zip 存档。
    【解决方案2】:

    【讨论】:

      【解决方案3】:

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

      首先,一些定义:

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

      现在,System.IO.Compression进行 Zip 归档。它会进行 deflategzip 压缩,因此会将单个数据块压缩成另一个数据块。

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

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

      【讨论】:

        【解决方案4】:

        GZipStream 类是处理压缩的原生方式。

        至于加密,有manyways可以做,大部分在System.Security命名空间。它们可以链接完成(加密压缩流或压缩加密流)。

        【讨论】:

        • 加密流很难压缩,因为你不能压缩随机数据。
        • 你当然可以压缩随机数据,它最终会使用几乎相同数量的空间。
        【解决方案5】:

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

        【讨论】:

          【解决方案6】:

          我不确定这些步骤是否可以组合,但 .NET 对基本加密有很好的支持。这是article on it

          【讨论】:

            【解决方案7】:

            如果不能合并,先压缩再加密。压缩已经加密的文件会导致压缩率变差,因为会删除很多冗余。

            【讨论】:

              【解决方案8】:

              这是一个有用的话题:

              Help in creating Zip files from .Net and reading them from Java

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

              【讨论】:

                【解决方案9】:

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

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 2012-01-08
                  • 1970-01-01
                  • 2016-04-07
                  • 1970-01-01
                  • 2010-11-23
                  • 2013-04-06
                  • 2012-01-24
                  相关资源
                  最近更新 更多