using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using System.Security.Cryptography; using System.Text; using System.Threading.Tasks; namespace CommonToolsCore { public class AesClass { const string Key = "dau&*5asda.;lk8L"; /// /// AES 加密 /// /// 明文(待加密) /// key /// 密文 public string AesEncrypt(string str, string key = Key) { if (string.IsNullOrEmpty(str)) return null; Byte[] toEncryptArray = Encoding.UTF8.GetBytes(str); RijndaelManaged rm = new RijndaelManaged { Key = Encoding.UTF8.GetBytes(key), 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); } /// /// AES 解密 /// /// 明文(待解密) /// 密文 /// public string AesDecrypt(string str, string key = Key) { if (string.IsNullOrEmpty(str)) return null; Byte[] toEncryptArray = Convert.FromBase64String(str); RijndaelManaged rm = new RijndaelManaged { Key = Encoding.UTF8.GetBytes(key), Mode = CipherMode.ECB, Padding = PaddingMode.PKCS7 }; ICryptoTransform cTransform = rm.CreateDecryptor(); Byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length); return Encoding.UTF8.GetString(resultArray); } /// /// 获取规则加密字符串 用于toke附带参数 /// /// 规则集合 /// 返回规则加密字符串 public string EncryptRules(RuleCollection rules) { string rs = JsonConvert.SerializeObject(rules); return AesEncrypt(rs); } /// /// 解密字规则支付穿 /// /// 加密的字符串 /// 规则字符串类 public RuleCollection DecryptRules(string rules) { string str = AesDecrypt(rules); return JsonConvert.DeserializeObject(str); // return AesEncrypt(rs); } } /// /// 业务权限集合和其他集合 /// public class RuleCollection { /// /// 用户名,这个名字可能会被更改 /// public string User { get; set; } /// /// 授权的服务 用字符串表示,如果有 "CGGG"代表采购公告 "ZXDSFXLS" 代表竞争对手零时权限 没有该字符串,代表没有权限 /// public List PrivilegeService { get; set; } ///// ///// 采购公告 ///// //public int CGGG { get; set; } // /// // /// 竞争对手分析 零时权限 // /// // public int ZXDSFXLS { get; set; } // /// // /// 竞争对手分析 // /// // public int ZXDSFX { get; set; } } }