我正在编写一个小型编码类,它需要一个byte[]
数组,并对其进行加密。由于 IV 可以公开,我希望将其添加到密文中以用于解密。
遵循 MSDN 文档和一些 SO Post 源(找不到链接),我使用原始 IV 开始流;
//Start encryption process
using (var msEncrypt = new MemoryStream())
{
using (var csEncrypt = new CryptoStream(msEncrypt, encryptor.CreateEncryptor(), CryptoStreamMode.Write))
{
using (var swWriter = new StreamWriter(csEncrypt))
{
//Write all data to the stream.
swWriter.Write(encryptor.IV);
swWriter.Write(plainTextRaw);
}
}
Console.WriteLine("Encrypted Value: {0}", BitConverter.ToString(msEncrypt.ToArray()).Replace("-", String.Empty));
return msEncrypt.ToArray();
}
然而,在编写一个提取前 16 个字节的简单单元测试时,它们似乎不匹配。
我确定 IV 正在流中被加密,那么注入它的最佳位置在哪里?