using System; using System.Collections.Generic; using System.Text; using System.Security.Cryptography; using System.IO; namespace AES { public sealed class AESEncrypt { public static string Encrypt(string toEncrypt,string key) { // 256-AES key byte[] keyArray = UTF8Encoding.UTF8.GetBytes(key); // byte[] toEncryptArray = UTF8Encoding.UTF8.GetBytes(toEncrypt); RijndaelManaged rDel = new RijndaelManaged(); rDel.Key = keyArray; rDel.Mode = CipherMode.ECB; rDel.Padding = PaddingMode.PKCS7; ICryptoTransform encryptor = rDel.CreateEncryptor(rDel.Key, rDel.IV); MemoryStream msEncrypt = new MemoryStream(); CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write); StreamWriter swEncrypt = new StreamWriter(csEncrypt); swEncrypt.Write(toEncrypt); // Clean things up. // Close the streams. if (swEncrypt != null) swEncrypt.Close(); if (csEncrypt != null) csEncrypt.Close(); if (msEncrypt != null) msEncrypt.Close(); // Clear the RijndaelManaged object. if (rDel != null) rDel.Clear(); return Convert.ToBase64String(msEncrypt.ToArray()); } public static string Decrypt(string toDecrypt,string key) { // 256-AES key byte[] keyArray = UTF8Encoding.UTF8.GetBytes(key); byte[] toDecryptArray = Convert.FromBase64String(toDecrypt); RijndaelManaged rDel = new RijndaelManaged(); rDel.Key = keyArray; rDel.Mode = CipherMode.ECB; rDel.Padding = PaddingMode.PKCS7; ICryptoTransform Decryptor = rDel.CreateDecryptor(rDel.Key, rDel.IV); MemoryStream msDecrypt = new MemoryStream(toDecryptArray); CryptoStream csDecrypt = new CryptoStream(msDecrypt, Decryptor, CryptoStreamMode.Read); StreamReader srDecrypt = new StreamReader(csDecrypt); toDecrypt = srDecrypt.ReadToEnd(); // Close the streams. if (srDecrypt != null) srDecrypt.Close(); if (csDecrypt != null) csDecrypt.Close(); if (msDecrypt != null) msDecrypt.Close(); // Clear the RijndaelManaged object. if (rDel != null) rDel.Clear(); return toDecrypt; //return UTF8Encoding.UTF8.GetString(swEncrypt.); } } }