using System; using System.Text; using System.Web; using WX.Interface.Security; namespace CRM.Core.BLL.Util { public class SecurityHelper { public static CACHE_BL bl = new CACHE_BL(); public static bool bWithEncypt { get { if (bl.GetValue_Parameter(CRM.Core.Model.Enum.Parameter.是否开启加密) != null && bl.GetValue_Parameter(CRM.Core.Model.Enum.Parameter.是否开启加密) == "0") return false; return true; } } public SecurityHelper() { // // TODO: Add constructor logic here // } public bool CheckClientValid(string clientId, string paramData, string signData) { if (!bWithEncypt) return true; ClientKey client = ClientKey.GetClientKey(clientId); if (client == null) return false; EncDecUtil util = new EncDecUtil(); string sign = util.signData(paramData, client.AccessKey); if (sign != signData) return false; return true; } /// /// 加密 /// /// /// /// public string encyptData(string clientId, string paramData) { //if (!bWithEncypt) // return paramData; ClientKey client = ClientKey.GetClientKey(clientId); if (client == null) throw new Exception("非法客户端访问"); EncDecUtil util = new EncDecUtil(); return util.encyptData(paramData, client.AccessKey); } /// /// 解密 /// /// /// /// public string decyptData(string clientId, string paramData) { //if (!bWithEncypt) // return paramData; ClientKey client = ClientKey.GetClientKey(clientId); if (client == null) throw new Exception("非法客户端访问"); EncDecUtil util = new EncDecUtil(); return util.decyptData(paramData, client.AccessKey); } /// /// 生成sign /// /// 约定 /// 加密后的串 /// public string signData(string clientId, string paramData) { //if (!bWithEncypt) // return paramData; ClientKey client = ClientKey.GetClientKey(clientId); if (client == null) throw new Exception("非法客户端访问"); EncDecUtil util = new EncDecUtil(); return util.signData(paramData, client.AccessKey); } public string createSignEncodingStr(string json) { string clientid = "UPWEBSITE"; string key = "content={0}&clientid=UPWEBSITE&sign={1}"; string jiami = encyptData(clientid, json); string jiami1 = HttpUtility.UrlEncode(jiami, Encoding.UTF8); string jiasuo = signData(clientid, jiami); string jiasuo1 = HttpUtility.UrlEncode(jiasuo, Encoding.UTF8); key = string.Format(key, jiami1, jiasuo1); return key; } /// /// JSON表单方式 /// /// 内容 /// 加密key配置 /// public object createAjaxSignEncodingStr(string json, string clientid) { if (string.IsNullOrWhiteSpace(clientid)) { clientid = "UPWEBSITE"; } string content = encyptData(clientid, json); string sign = signData(clientid, content); var maxjson = new { content = content, clientId = clientid, sign = sign }; return maxjson; } public string createSignEncodingStr(string json, string clientid) { if (string.IsNullOrWhiteSpace(clientid)) { clientid = "UPWEBSITE"; } string key = "content={0}&clientid=UPWEBSITE&sign={1}"; string jiami = encyptData(clientid, json); string jiami1 = HttpUtility.UrlEncode(jiami, Encoding.UTF8); string jiasuo = signData(clientid, jiami); string jiasuo1 = HttpUtility.UrlEncode(jiasuo, Encoding.UTF8); key = string.Format(key, jiami1, jiasuo1); return key; } public string createSignEncodingStr2(string json) { string clientid = "UPWEBSITE"; string key = "key={0}&clientid=UPWEBSITE&sign={1}"; string jiami = encyptData(clientid, json); string jiami1 = HttpUtility.UrlEncode(jiami, Encoding.UTF8); string jiasuo = signData(clientid, jiami); string jiasuo1 = HttpUtility.UrlEncode(jiasuo, Encoding.UTF8); key = string.Format(key, jiami1, jiasuo1); return key; } public string createSignEncodingStr2(string json, string clientid) { if (string.IsNullOrWhiteSpace(clientid)) { clientid = "UPWEBSITE"; } string key = "key={0}&clientid=UPWEBSITE&sign={1}"; string jiami = encyptData(clientid, json); string jiami1 = HttpUtility.UrlEncode(jiami, Encoding.UTF8); string jiasuo = signData(clientid, jiami); string jiasuo1 = HttpUtility.UrlEncode(jiasuo, Encoding.UTF8); key = string.Format(key, jiami1, jiasuo1); return key; } public string createSignStr(string json) { string clientid = "UPWEBSITE"; string key = "content={0}&clientid=UPWEBSITE&sign={1}"; string jiami = encyptData(clientid, json); string jiasuo = signData(clientid, jiami); key = string.Format(key, jiami, jiasuo); return key; } /// /// CTI号码加密 /// /// /// /// public string encyptCtiNumStr(string para) { string clientid = "AYCRM2_CTI"; return encyptData(clientid, para); } /// /// CTI号码解密 /// /// /// /// public string decyptCtiNumStr(string para) { string clientid = "AYCRM2_CTI"; return decyptData(clientid, para); } public static string OrderClientIdKey { get { var key = bl.GetValue_Parameter(CRM.Core.Model.Enum.Parameter.Sys_OrderClientIdKey); if (string.IsNullOrWhiteSpace(key)) { return "UPWEBSITE"; } return key; } } } }