我在使用下面的代码时遇到了一些麻烦.我有一个临时位置的文件,需要加密,这个功能加密该数据,然后存储在"pathToSave"位置.
在检查时似乎没有正确处理整个文件 - 我的输出中缺少一些内容,我怀疑它与没有在整个流中运行的while循环有关.
顺便说一句,如果我尝试在while循环后调用CryptStrm.Close(),我会收到一个异常.这意味着如果我尝试解密文件,我会得到一个已经在使用的文件错误!
尝试了所有平常和我在这里看到类似的问题,任何帮助都会很棒.
谢谢
public void EncryptFile(String tempPath, String pathToSave)
{
try
{
FileStream InputFile = new FileStream(tempPath, FileMode.Open, FileAccess.Read);
FileStream OutputFile = new FileStream(pathToSave, FileMode.Create, FileAccess.Write);
RijndaelManaged RijCrypto = new RijndaelManaged();
//Key
byte[] Key = new byte[32] { ... };
//Initialisation Vector
byte[] IV = new byte[32] { ... };
RijCrypto.Padding = PaddingMode.None;
RijCrypto.KeySize = 256;
RijCrypto.BlockSize = 256;
RijCrypto.Key = Key;
RijCrypto.IV = IV;
ICryptoTransform Encryptor = RijCrypto.CreateEncryptor(Key, IV);
CryptoStream CryptStrm = new CryptoStream(OutputFile, Encryptor, …Run Code Online (Sandbox Code Playgroud)