// This sample demonstrates using a key based on the cryptographic service provider (CSP) version
// of the Data Encryption Standard (DES)algorithm to encrypt a string to a byte array, and then
// to decrypt the byte array back to a string.
using System;
using System.IO;
using System.Text;
using System.Security.Cryptography;
class CryptoMemoryStream
{
static byte[] DesIV = new byte[] { 0x22, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
static byte[] DesKey = new byte[] { 0x22, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
// Main method.
public static void Main()
{
DESCryptoServiceProvider Des = new DESCryptoServiceProvider();
Des.IV = DesIV;
Des.Key = DesKey;
byte[] buffer = Encrypt("This is some plaintext!", Des);
string plaintext = Decrypt(buffer, Des);
Console.WriteLine(plaintext);
}
public static byte[] Encrypt(string PlainText, SymmetricAlgorithm key)
{
MemoryStream ms = new MemoryStream();
CryptoStream encStream = new CryptoStream(ms, key.CreateEncryptor(), CryptoStreamMode.Write);
StreamWriter sw = new StreamWriter(encStream);
sw.WriteLine(PlainText + "01");
sw.Close();
encStream.Close();
byte[] buffer = ms.ToArray();
ms.Close();
return buffer;
}
public static string Decrypt(byte[] CypherText, SymmetricAlgorithm key)
{
MemoryStream ms = new MemoryStream(CypherText);
CryptoStream encStream = new CryptoStream(ms, key.CreateDecryptor(), CryptoStreamMode.Read);
StreamReader sr = new StreamReader(encStream);
string val = sr.ReadLine();
sr.Close();
encStream.Close();
ms.Close();
return val;
}
}