C#中的(流)压缩和加密(AES 256)excel文件

时间:2017-01-11 22:24:07

标签: c# .net excel encryption compression

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

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

1 个答案:

答案 0 :(得分:3)

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

Cryptography软件包包括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能力。另一个功能是在加密或解密之前更改BlockSizeCipherModeKeySizePaddingMode的功能(AES)。

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

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

RSA等密码术类能够使用基于文件的x509证书对文件和流进行加密和解密,或者证书位于商店内。

在Compress包中使用GZip,快速示例。

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

压缩和解压缩GZip,ZLib数据非常简单。

在Compress包中使用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二进制文件。