RijndaelManaged不加密

时间:2013-04-19 19:00:45

标签: c# cryptography rijndaelmanaged

我正在尝试使用RijndaelManaged类加密缓冲区而没有任何成功。它总是返回byte [0]。这是代码:

    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。知道代码有什么问题吗?感谢。

1 个答案:

答案 0 :(得分:4)

您需要致电stream.FlushFinalBlock()

这将执行加密中的任何最后步骤,并将CryptoStream的内部缓冲区刷新到底层内存流中。