using System.Text; using System.Security.Cryptography; namespace Common { public class CryptHelper { /// /// aes加密 /// /// 加密字符串 /// 密钥 /// 向量 /// 加密模式 /// 填充模式 /// 加密后字符串 public static string AesEncrypt(string str, string key, string iv, string mode = "CBC", string padding = "PKCS7") { if (string.IsNullOrEmpty(str)) return null; Byte[] toEncryptArray = Encoding.UTF8.GetBytes(str); CipherMode cipherMode = CipherMode.CBC; PaddingMode paddingMode = PaddingMode.PKCS7; if(mode == "CBC") cipherMode = CipherMode.CBC; if(mode == "ECB") cipherMode = CipherMode.ECB; if(mode == "CFB") cipherMode = CipherMode.CFB; if(mode == "CTS") cipherMode = CipherMode.CTS; if(padding == "PKCS7") paddingMode = PaddingMode.PKCS7; if(padding == "None") paddingMode = PaddingMode.None; if(padding == "Zeros") paddingMode = PaddingMode.Zeros; if(padding == "ISO10126") paddingMode = PaddingMode.ISO10126; if(padding == "ANSIX923") paddingMode = PaddingMode.ANSIX923; System.Security.Cryptography.RijndaelManaged rm = new System.Security.Cryptography.RijndaelManaged { Key = Encoding.UTF8.GetBytes(key), IV = Encoding.UTF8.GetBytes(iv), Mode = cipherMode, Padding = paddingMode }; System.Security.Cryptography.ICryptoTransform cTransform = rm.CreateEncryptor(); Byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length); string jsonData = Convert.ToBase64String(resultArray, 0, resultArray.Length); return Convert.ToBase64String(Encoding.UTF8.GetBytes(jsonData)); } } }