using System.Security.Cryptography; using System.Text; namespace LY.App.Common.Cypher { public class AESCypherUtil { /// /// AES 加密 /// /// 明文 /// 密钥对 /// 密文 public static string Encrypt(string str, string key, string iv) { using (var aes = Aes.Create()) { aes.Key = Encoding.UTF8.GetBytes(key); aes.IV = Encoding.UTF8.GetBytes(iv); aes.Mode = CipherMode.CBC; aes.Padding = PaddingMode.PKCS7; byte[] strbuffer = Encoding.UTF8.GetBytes(str); using (var crytTransform = aes.CreateEncryptor(aes.Key, aes.IV)) { byte[] buffer = crytTransform.TransformFinalBlock(strbuffer, 0, strbuffer.Length); return Convert.ToBase64String(buffer, 0, buffer.Length); } } } /// /// AES 解密 /// /// 密文 /// 密钥对 /// 明文 public static string Decrypt(string str, string key, string iv) { using (var aes = Aes.Create()) { aes.Key = Encoding.UTF8.GetBytes(key); aes.IV = Encoding.UTF8.GetBytes(iv); aes.Mode = CipherMode.CBC; aes.Padding = PaddingMode.PKCS7; byte[] strbuffer = System.Convert.FromBase64String(str); using (var crytTransform = aes.CreateDecryptor(aes.Key, aes.IV)) { byte[] buffer = crytTransform.TransformFinalBlock(strbuffer, 0, strbuffer.Length); return Encoding.UTF8.GetString(buffer); } } } } }