Use this class...
public class Rijndael
{
public static string Encrypt(string text, string key)
{
RijndaelManaged rijndael = new RijndaelManaged();
byte\[\] plainText = System.Text.Encoding.Unicode.GetBytes(text);
byte\[\] salt = Encoding.ASCII.GetBytes(key.Length.ToString());
PasswordDeriveBytes secretKey = new PasswordDeriveBytes(key, salt);
ICryptoTransform Encryptor = rijndael.CreateEncryptor(secretKey.GetBytes(32), secretKey.GetBytes(16));
MemoryStream memoryStream = new MemoryStream();
CryptoStream cryptoStream = new CryptoStream(memoryStream, Encryptor, CryptoStreamMode.Write);
cryptoStream.Write(plainText, 0, plainText.Length);
cryptoStream.FlushFinalBlock();
byte\[\] cipherBytes = memoryStream.ToArray();
memoryStream.Close();
cryptoStream.Close();
return Convert.ToBase64String(cipherBytes);
}
public static string Decrypt(string text, string key)
{
RijndaelManaged rijndael = new RijndaelManaged();
byte\[\] encryptedText = Convert.FromBase64String(text);
byte\[\] salt = Encoding.ASCII.GetBytes(key.Length.ToString());
PasswordDeriveBytes secretKey = new PasswordDeriveBytes(key, salt);
ICryptoTransform Decryptor = rijndael.CreateDecryptor(secretKey.GetBytes(32), secretKey.GetBytes(16));
MemoryStream memoryStream = new MemoryStream(encryptedText);
CryptoStream cryptoStream = new CryptoStream(memoryStream, Decryptor, CryptoStreamMode.Read);
byte\[\] plainText = new byte\[encryptedText.Length\];
int DecryptedCount = cryptoStream.Read(plainText, 0, plainText.Length);
memoryStream.Close();
cryptoStream.Close();
return Encoding.Unicode.GetString(plainText, 0, DecryptedCount);
}
}
e.g.
TextBox2.Text = Rijndael.Encrypt(TextBox1.Text, "SecurityKey");
TextBox3.Text = Rijndael.Decrypt(TextBox2.Text, "SecurityKey");
modified on Wednesday, August 26, 2009 10:46 AM