我需要加密和存储上传的文件.
然后,这些文件将通过令牌/ ticken机制进行解密和下载.
重要的是文件不是未加密的,系统管理员不应该随便访问它们.
我的问题是文件可能非常大,10演出大约是预期的最大文件大小.
加密过程可以根据需要进行.
但是我希望加密过程能够在运行中运行 - 因此没有10个gig解密文件,只有一大块内存(我没有10个ram for this).
任何建议如何实现这一目标?
大多数加密是基于流的,所以这不应该是一个问题,在所有 -只需运行FileStream作为输入CryptoStream,并使用该为源动力,但是你正在消耗数据; 这可能是进程内处理,也可能是目的地FileStream(在这种情况下,cryptoStream.CopyTo(outputFileStream)应该就足够了).
using(FileStream fStream = File.Open(FileName, FileMode.OpenOrCreate))
{
// Create a new Rijndael object.
Rijndael RijndaelAlg = Rijndael.Create();
// Create a CryptoStream using the FileStream
// and the passed key and initialization vector (IV).
using(CryptoStream cStream = new CryptoStream(fStream,
RijndaelAlg.CreateDecryptor(Key, IV),
CryptoStreamMode.Read))
using(FileStream destination = File.Create(destinationPath))
{
cStream.CopyTo(destination);
}
}
Run Code Online (Sandbox Code Playgroud)
但是,cStream可以用于任何 Stream基于阅读.
| 归档时间: |
|
| 查看次数: |
872 次 |
| 最近记录: |