0

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 が正しく割り当てられています。コードの何が問題なのか分かりますか? ありがとう。

4

1 に答える 1

4

に電話する必要がありますstream.FlushFinalBlock()

これにより、暗号化の最終ステップが実行され、CryptoStream の内部バッファーが基になるメモリ ストリームにフラッシュされます。

于 2013-04-19T19:01:25.157 に答える