using System; using System.Text; using System.Security.Cryptography; /// <summary> /// AES加密/解密 /// </summary> public sealed class AESCrypto { //一个256位的默认key private const string DEFAULT_KEY = "AbcdefG@1234567*QWERTYU-Mnbvcxz#"; //加密 public static string Encrypt(string encryptString, string encryptKey = "") { if (string.IsNullOrEmpty(encryptString)) return string.Empty; if (string.IsNullOrEmpty(encryptKey)) encryptKey = DEFAULT_KEY; byte[] toEncryptArray = Encoding.UTF8.GetBytes(encryptString); RijndaelManaged rm = new RijndaelManaged { Key = Encoding.UTF8.GetBytes(encryptKey), Mode = CipherMode.ECB,//最简单的分块加密 Padding = PaddingMode.PKCS7 }; ICryptoTransform cTransform = rm.CreateEncryptor(); Byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length); return Convert.ToBase64String(resultArray, 0, resultArray.Length); } //解密 public static string Decrypt(string decryptString, string decryptKey = "") { if (string.IsNullOrEmpty(decryptString)) return string.Empty; if (string.IsNullOrEmpty(decryptKey)) decryptKey = DEFAULT_KEY; Byte[] toEncryptArray = Convert.FromBase64String(decryptString); RijndaelManaged rm = new RijndaelManaged { Key = Encoding.UTF8.GetBytes(decryptKey), Mode = CipherMode.ECB, Padding = PaddingMode.PKCS7 }; ICryptoTransform cTransform = rm.CreateDecryptor(); Byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length); return Encoding.UTF8.GetString(resultArray); } }