using System; using System.Collections.Generic; using System.Linq; using System.Security.Cryptography; using System.Text; using System.Threading.Tasks; namespace TEAMModelOS.Controllers.Third.Helpers { public class AESHelper { /// /// 有密码的加密 /// /// 加密字符 /// 加密的密码 /// public static string AESEncrypt(string toEncrypt, string key) { byte[] keyArray = hexStringTobyte(key); byte[] toEncryptArray = UTF8Encoding.UTF8.GetBytes(toEncrypt); RijndaelManaged rDel = new RijndaelManaged(); rDel.KeySize = 128; rDel.BlockSize = 128; rDel.Key = keyArray; rDel.Mode = CipherMode.ECB; rDel.Padding = PaddingMode.PKCS7; ICryptoTransform cTransform = rDel.CreateEncryptor(); byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length); return byteToHexString(resultArray); } /// /// 解密 /// /// 解密字符 /// 加密的密码 /// public static string AESDecrypt(string toDecrypt, string key) { byte[] keyArray = hexStringTobyte(key); byte[] dest = hexStringTobyte(toDecrypt); RijndaelManaged rDel = new RijndaelManaged(); rDel.KeySize = 128; rDel.BlockSize = 128; rDel.Key = keyArray; rDel.Mode = CipherMode.ECB; rDel.Padding = PaddingMode.PKCS7; ICryptoTransform cTransform = rDel.CreateDecryptor(); byte[] resultArray = cTransform.TransformFinalBlock(dest, 0, dest.Length); return UTF8Encoding.UTF8.GetString(resultArray); } private static byte[] hexStringTobyte(String s) { if (string.IsNullOrEmpty(s)) return null; s = s.ToLower(); int byteArrayLength = s.Length / 2; byte[] b = new byte[byteArrayLength]; for (int i = 0; i < byteArrayLength; i++) { byte b0 = Convert.ToByte(s.Substring(i * 2, 2), 16); b[i] = b0; } return b; } public static string byteToHexString(byte[] t) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < t.Length; i++) { sb.Append(t[i].ToString("x").PadLeft(2, '0')); } return sb.ToString().ToUpper(); } } }