Create a CryptoStream using the MemoryStream : CryptoStream « Security « C# / CSharp Tutorial






using System;
using System.Security.Cryptography;
using System.Text;
using System.IO;

class RC2Sample
{
    static void Main()
    {
        RC2 RC2alg = RC2.Create("RC2");
        string sData = "this is a test.";
        byte[] Data = EncryptTextToMemory(sData, RC2alg.Key, RC2alg.IV);
        string Final = DecryptTextFromMemory(Data, RC2alg.Key, RC2alg.IV);
        Console.WriteLine(Final);
    }

    public static byte[] EncryptTextToMemory(string Data,  byte[] Key, byte[] IV)
    {
         MemoryStream mStream = new MemoryStream();
         RC2 RC2alg = RC2.Create();
         CryptoStream cStream = new CryptoStream(mStream,RC2alg.CreateEncryptor(Key, IV),CryptoStreamMode.Write);
         byte[] toEncrypt = new ASCIIEncoding().GetBytes(Data);
         cStream.Write(toEncrypt, 0, toEncrypt.Length);
         cStream.FlushFinalBlock();
         byte[] ret = mStream.ToArray();
         cStream.Close();
         mStream.Close();
         return ret;
    }

    public static string DecryptTextFromMemory(byte[] Data,  byte[] Key, byte[] IV)
    {
         MemoryStream msDecrypt = new MemoryStream(Data);
         RC2 RC2alg = RC2.Create();
         CryptoStream csDecrypt = new CryptoStream(msDecrypt,RC2alg.CreateDecryptor(Key, IV),CryptoStreamMode.Read);
         byte[] fromEncrypt = new byte[Data.Length];
         csDecrypt.Read(fromEncrypt, 0, fromEncrypt.Length);
         return new ASCIIEncoding().GetString(fromEncrypt);
    }
}








35.20.CryptoStream
35.20.1.Create a CryptoStream using the MemoryStream