c# получить CryptoStream как byte[]?

        string plainbyte = null;
        using (Aes aesAlg = Aes.Create())
        {
            aesAlg.Key = Key;
            aesAlg.IV = IV;
            ICryptoTransform decryptor = aesAlg.CreateDecryptor(aesAlg.Key, aesAlg.IV);
            using (MemoryStream msDecrypt = new MemoryStream(cipherText))
            {
                using (CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read))
                {
                    using (StreamReader srDecrypt = new StreamReader(csDecrypt))
                    {
                        plainbyte = srDecrypt.ReadToEnd();
                    }
                }
            }
        }

Тут получаем plaintext как строку, а нужно получить как byte[] plainbyte


Ответы (1 шт):

Автор решения: Alexander Petrov
byte[] bytes;
using (Aes aesAlg = Aes.Create())
{
    aesAlg.Key = Key;
    aesAlg.IV = IV;

    using (var decryptor = aesAlg.CreateDecryptor(aesAlg.Key, aesAlg.IV))
    using (var msDecrypt = new MemoryStream())
    using (var csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Write))
    {
        csDecrypt.Write(cipherText, 0, cipherText.Length);
        csDecrypt.FlushFinalBlock();
        bytes = msDecrypt.ToArray();
    }
}
→ Ссылка