2011-02-17 59 views
3

我希望能够在数据流入/来自磁盘时加密/解密数据。 我知道我可以编写自己的Stream并在那里实现加密,但我宁愿不冒险做错。是否有一个类似于以下代码的库?是否有.NET加密库作为Stream实现AES 256加密?

byte[] encryptionKey = ; 
byte[] initVector = ; 

var fileStream = new FileStream(filePath, FileMode.CreateNew, FileAccess.Write); 
var encryptionStream = new AesEncryptionStream(fileStream, initVector, encryptionKey); 
var gzStream = new GZipStream(encryptionStream, CompressionMode.Compress); 
var writer = new BinaryWriter(gzStream); 
+1

压缩 – SLaks 2011-02-17 16:17:03

+0

后,您应该加密见过[很大的执行情况#1 AES加密的(http://stackoverflow.com/questions/165808/simple-2-way-encryption-for-c/212707#212707)本身。我从此开始使用它。检查它是否适合你的目的。 – naveen 2011-02-17 16:30:16

回答

8

您正在寻找的RijndaelManagedCryptoStream类:

var aes = new RijndaelManaged { Key = ..., IV = ... }; 

using (var encryptor = aes.CreateEncryptor()) 
using (var cryptoStream = new CryptoStream(gzStream, encryptor, CryptoStreamMode.Write)) 
using (var writer = new BinaryWriter(cryptoStream)) { 
    ... 
}