Anyone working on software development most probably will deal with encryption someday. Besides being an interesting topic, encryption with various algorithms should be handled with care. Below I provide a basic implementation of AES model with sample encrypt and decrypt methods. This code is originated from codingvision.net thanks to Apex. There you can also find PHP versions.
Here is the finished app AES256. You can use it to encrypt/decrypt encode/decode and zip/unzip strings.
public static string encrypt(string text, string key) { RijndaelManaged aes = new RijndaelManaged(); aes.KeySize = 256; aes.BlockSize = 256; aes.Padding = PaddingMode.Zeros; aes.Mode = CipherMode.CBC; aes.Key = Encoding.Default.GetBytes(key); aes.GenerateIV(); ICryptoTransform AESEncrypt = aes.CreateEncryptor(aes.Key, aes.IV); byte[] buffer = Encoding.Default.GetBytes(text); var enc = AESEncrypt.TransformFinalBlock(buffer, 0, buffer.Length).Concat(aes.IV).ToArray(); return Convert.ToBase64String(enc); } public static string decrypt(string text, string key) { RijndaelManaged aes = new RijndaelManaged(); aes.KeySize = 256; aes.BlockSize = 256; aes.Padding = PaddingMode.Zeros; aes.Mode = CipherMode.CBC; aes.Key = Encoding.Default.GetBytes(key); byte[] enc = Convert.FromBase64String(text); byte[] buffer = enc.Take(enc.Length - aes.IV.Length).ToArray(); aes.IV = enc.Skip(enc.Length - aes.IV.Length).ToArray(); ICryptoTransform AESDecrypt = aes.CreateDecryptor(aes.Key, aes.IV); return Encoding.Default.GetString(AESDecrypt.TransformFinalBlock(buffer, 0, buffer.Length)).TrimEnd('\0'); }