解密之后信息带有乱字符,问题在哪里?
代码不复杂:
string msg = "Hello World!"; //需要加密的信息
byte[] buf = Encoding.Unicode.GetBytes(msg);
RijndaelManaged rm = new RijndaelManaged();
//=======================================================================
MemoryStream inStream = new MemoryStream(buf);
MemoryStream outStream = new MemoryStream();
CryptoStream cStream = new CryptoStream(outStream,
rm.CreateEncryptor(rm.Key,rm.IV),CryptoStreamMode.Write);
inStream.WriteTo(cStream);//加密
//=======================================================================
byte[] cbuf = outStream.GetBuffer();
string cstr = Encoding.Unicode.GetString(cbuf);
Console.WriteLine(cstr);// 加密之后的数据
//=======================================================================
MemoryStream inCryptoStream = new MemoryStream(cbuf);
MemoryStream outDecStream = new MemoryStream();
CryptoStream DecStream = new CryptoStream(outDecStream,
rm.CreateDecryptor(rm.Key,rm.IV),CryptoStreamMode.Write);
inCryptoStream.WriteTo(DecStream);//解密
//=======================================================================
byte[] decbuf = outDecStream.GetBuffer();
string decstr = Encoding.Unicode.GetString(decbuf,0,buf.Length);
Console.WriteLine(decstr); //解密之后的信息
但是解密之后的信息后面成了乱字符:
Hello Wo?替?鳃
请大侠们多指点,错误究竟在哪里?