我在尝试解密加密的文本文件时遇到了一个奇怪的问题。基本上 .txt 文件的内容是“这是一个测试:)”,当解密输出是“这是一个测试:”时,找出丢失的“)”。
当我一次解密文件一个字节(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();
}
}
请原谅草率的代码,它只是用于测试目的。