有人可以解释一下为什么这两段代码没有给出相同的结果,而第二个示例中的 StreamWriter 使用的是 UTF8 编码:
var TokenEncryptKey = "D268197CF891452844441A143AAEAAEB";
var key = Encoding.UTF8.GetBytes(TokenEncryptKey);
var alg = new RijndaelManaged();
alg.Key = key;
alg.Mode = CipherMode.ECB;
var mem = new MemoryStream();
CryptoStream encryptStream = new CryptoStream(mem, alg.CreateEncryptor(), CryptoStreamMode.Write);
var validReservation = Encoding.UTF8.GetBytes("AAAAAAAAAAAAAAAAAAAAAAA");
encryptStream.Write(validReservation, 0, validReservation.Length);
encryptStream.Flush();
encryptStream.FlushFinalBlock();
Console.Out.WriteLine(Convert.ToBase64String(mem.GetBuffer(), 0, (int)mem.Length));
第二个例子
var TokenEncryptKey = "D268197CF891452844441A143AAEAAEB";
var key = Encoding.UTF8.GetBytes(TokenEncryptKey);
var alg = new RijndaelManaged();
alg.Key = key;
alg.Mode = CipherMode.ECB;
var mem = new MemoryStream();
CryptoStream encryptStream = new CryptoStream(mem, alg.CreateEncryptor(), CryptoStreamMode.Write);
StreamWriter sw = new StreamWriter(encryptStream, Encoding.UTF8);
sw.Write("AAAAAAAAAAAAAAAAAAAAAAA");
sw.Flush();
encryptStream.FlushFinalBlock();
Console.Out.WriteLine(Convert.ToBase64String(mem.GetBuffer(), 0, (int)mem.Length));
凤凰求蛊
相关分类