我試圖解密一個加密的文本文件時出現了一個奇怪的問題。基本上.txt文件的內容是「這是一個測試:)」,當解密輸出是「這是一個測試:」,發現缺少的「)」。MemoryStream和解密文本文件
當我一次解密一個字節的文件時(while循環),情況並非如此,但當使用下面的代碼時,它似乎有上述問題。
private static void DecryptFile(string inputFile, string outputFile, string skey)
{
RijndaelManaged aes = new RijndaelManaged();
try
{
byte[] key = ASCIIEncoding.UTF8.GetBytes(skey);
byte[] file = File.ReadAllBytes(inputFile);
using (MemoryStream ms = new MemoryStream())
{
using (CryptoStream cs = new CryptoStream(ms, aes.CreateDecryptor(key, key), CryptoStreamMode.Write))
{
cs.Write(file, 0, file.Length);
File.WriteAllBytes(outputFile, ms.ToArray());
aes.Clear();
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
aes.Clear();
}
}
請原諒sl code的代碼,它只是用於測試目的。
請同時顯示加密代碼。 – phoog 2012-04-27 16:08:02