我正在尝试用RijndaelManaged类加密一个缓冲区,但没有成功。它总是返回字节。代码如下:
public byte[] Encrypt(byte[] data, byte[] key)
{
using (var ms = new MemoryStream())
{
using (var aes = RijndaelManaged.Create())
{
aes.Key = _checksumProvider.CalculateChecksum(key);
aes.IV = _checksumProvider.CalculateChecksum(key);
var stream = new CryptoStream(ms, aes.CreateEncryptor(aes.Key, aes.IV), CryptoStreamMode.Write);
stream.Write(data, 0, data.Length);
return ms.ToArray();
}
}
}键和IV已正确分配。知道代码出了什么问题吗?谢谢。
发布于 2013-04-20 03:01:25
你需要给stream.FlushFinalBlock()打电话。
这将执行加密中的所有最后步骤,并将CryptoStream的内部缓冲区刷新到底层内存流中。
https://stackoverflow.com/questions/16111735
复制相似问题