using System; using System.Security.Cryptography; using System.Text; namespace WX.CRM.Common { public class AESHelper { public static string Decrypt(string text, string key) { try { byte[] encryptedData = strToHexByte(text); RijndaelManaged rijndaelCipher = new RijndaelManaged(); rijndaelCipher.Key = Encoding.UTF8.GetBytes(key); rijndaelCipher.Mode = CipherMode.ECB; rijndaelCipher.Padding = PaddingMode.None; ICryptoTransform transform = rijndaelCipher.CreateDecryptor(); byte[] plainText = transform.TransformFinalBlock(encryptedData, 0, encryptedData.Length); string result = Encoding.Default.GetString(plainText); return result; } catch (Exception ex) { return null; } } public static string Encrypt(string text, string key) { try { byte[] encryptedData = Encoding.UTF8.GetBytes(text); encryptedData = padding(encryptedData); RijndaelManaged rijndaelCipher = new RijndaelManaged(); rijndaelCipher.Key = Encoding.UTF8.GetBytes(key); rijndaelCipher.Mode = CipherMode.ECB; rijndaelCipher.Padding = PaddingMode.None; ICryptoTransform transform = rijndaelCipher.CreateEncryptor(); byte[] plainText = transform.TransformFinalBlock(encryptedData, 0, encryptedData.Length); return byteToHexStr(plainText); } catch (Exception ex) { return null; } } private static byte[] strToHexByte(string hexString) { hexString = hexString.Replace(" ", ""); if ((hexString.Length % 2) != 0) hexString += " "; byte[] returnBytes = new byte[hexString.Length / 2]; for (int i = 0; i < returnBytes.Length; i++) returnBytes[i] = Convert.ToByte(hexString.Substring(i * 2, 2), 16); return returnBytes; } private static byte[] padding(byte[] src) { if (src.Length % 16 == 0) { return src; } byte[] buffer = new byte[src.Length / 16 * 16 + 16]; System.Array.Copy(src, 0, buffer, 0, src.Length); return buffer; } private static string byteToHexStr(byte[] bytes) { string hexString = string.Empty; if (bytes != null) { StringBuilder strB = new StringBuilder(); for (int i = 0; i < bytes.Length; i++) { strB.Append(bytes[i].ToString("X2")); } hexString = strB.ToString(); } return hexString.ToLower(); } } }