【问题标题】:Compress and Encrypt (AES 256) excel files in (streams) in C# [closed]C# 中(流)中的压缩和加密(AES 256)excel 文件 [关闭]
【发布时间】:2017-01-11 22:24:07
【问题描述】:

我需要一个带有加密和压缩方法的包。

最好正确压缩/解压缩和加密/解密大流。

【问题讨论】:

  • 先用zip压缩,再用AES加密。
  • 加密后压缩不会产生任何好处,因为正确加密的数据无法与随机数据区分开来,而压缩依赖于模式识别和替换来减小大小。请注意,压缩与加密结合时可能会导致安全问题。您应该仔细评估对威胁模型的影响是否超过了压缩带来的好处。请参阅this explanation of the CRIME attack 了解更多信息。
  • 这不是压缩,而是 SSL 协议的设计和处理 cookie 的方式。只需压缩和加密即可。

标签: c# .net excel encryption compression


【解决方案1】:

C# Cryptography 包、C# Compression 和 NuGet NequeoIOCompress 包。

密码学包包括 AES、RSA、3DES、Blowfish、Twofish、CMS、PGP、EllipticCurve、Rijndael 和其他一些密码学类。它还包括使用内置于ProtectedData 类的.Net 的数据保护类。你可以随意使用这个包。

压缩包包括 Bzip2、Zip、Huffman、Zlib、GZip 和 7zip 压缩的压缩类。您可以随意使用这些软件包。

在 Cryptography 包中使用 AES,一个快速示例。

// Create a new AES cryto.
using (AdvancedAES aes = new AdvancedAES())
{
    bool ret = false;

    ret = aes.EncryptFile(pathToDecryptedFile, pathToEncryptedFile, Key, IV);
    ret = aes.DecryptFile(pathToDecryptedFile, pathToEncryptedFile, Key, IV);
}

上面的代码就像加密和解密文件一样简单,您还可以在StreamStringbyte[] 中进行加密和解密,它还具有内置的async 功能。另一个功能是能够 (AES) 在加密或解密之前更改 BlockSizeCipherModeKeySizePaddingMode

Blowfish、Twofish 和 Rijndael 等密码学类具有快速加密和解密方法,您只需传入 byte[] 数据并返回 byte[] 加密或解密数据。

PGP 等密码学类具有更多功能,包括使用公钥和密钥对输入数据进行签名和验证。

加密类(如 RSA)能够使用基于文件的 x509 证书或如果证书位于存储中,对文件和流进行加密和解密。

在压缩包中使用 GZip,一个快速示例。

Nequeo.IO.Compression.GZipStream.Decompress(zipStream, unZipStream);
Nequeo.IO.Compression.GZipStream.Compress(unZipStream, zipStream);

GZip、ZLib数据的压缩和解压就是这么简单。

使用压缩包中的 7zip,一个快速示例。

Nequeo.IO.Compression.SevenZip.Decompress(zipFilename, unZipDirectorPath);
Nequeo.IO.Compression.SevenZip.Compress(zipFilename, zipDirectorPath);

使用相同的压缩包 (NuGet NequeoIOCompression) 以 BZip2、Zip 和 7Zip 压缩和解压缩数据。

如上所述,这三个 NuGet 包可供您免费使用和分发。请注意,7Zip 压缩依赖于 7zip.dll 进行 x64、x86 处理。如果您安装压缩包,则包含 7zip.dll 二进制文件。

【讨论】:

  • 复制和粘贴链接到一个句子的答案在这里被认为没有帮助。
  • 我认为你是误会了,我并不是要侮辱你或破坏你的贡献,我只是说你的答案可以改进。也许在您的答案中包含一个代码示例?阅读help center 也可能有用。
  • 不错的编辑和示例代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-05
  • 1970-01-01
  • 1970-01-01
  • 2014-03-20
相关资源
最近更新 更多