using System;
using System.Text;
using System.Web;
using WX.CRM.IBLL.Util;
using WX.Interface.Security;
namespace WX.CRM.BLL.Util
{
public class SecurityHelper : ISecurityHelper
{
public static CACHE_BL bl = new CACHE_BL();
public static bool bWithEncypt
{
get
{
if (bl.GetValue_Parameter(WX.CRM.Model.Enum.Parameter.是否开启加密) != null
&& bl.GetValue_Parameter(WX.CRM.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);
}
///
/// 加密
///
///
///
///
public string encyptDataNew(string ciphertext, string accessKey, string iv)
{
EncDecUtil util = new EncDecUtil();
return util.encyptDataNew(ciphertext, accessKey, iv);
}
///
/// 解密
///
///
///
///
public string decyptDataNew(string cryptograph, string accessKey, string iv)
{
EncDecUtil util = new EncDecUtil();
return util.decyptDataNew(cryptograph, accessKey, iv);
}
///
/// 生成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=" + clientid + "&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=" + clientid + "&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=" + clientid + "&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=" + clientid + "&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=" + clientid + "&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(WX.CRM.Model.Enum.Parameter.Sys_OrderClientIdKey);
if (string.IsNullOrWhiteSpace(key))
{
return "UPWEBSITE";
}
return key;
}
}
}
}