using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using PTMedicalInsurance.Common; using Newtonsoft.Json.Linq; //using GMUtilLib; using PTMedicalInsurance.Variables; using Newtonsoft.Json; using SM2Crypto.Lib; namespace PTMedicalInsurance.Helper { class EncryptHelper { //private string ak = "1G94963I20403F60C80A00005FF7A699"; //private string sk = "APyE9G1D+C8g3qV3Z6VshXztOa55YJBgwN+P4WqU5n0x"; //private string appid = "1G94963HS03V3F60C80A00000DB330D8"; //测试 //private string ak = "1H1INA1L90OH3F60C80A00008119D616"; //private string sk = "APCIAgJqh3+AcK/IXL1WJD130i2q+6UblRxQzus3+sVw"; //private string appid = "1H1INA1L30OG3F60C80A0000DEE43558"; //正式 private string ak = "1H62Q1KH205K76430B0A0000BF149773"; private string sk = "YbNObZNMdUgwgLUEyK4ixNSkaCF9OPtCdDth9APWYKU="; private string appid = "1H62Q1KGP05J76430B0A00007144E257"; private string publicKey = "BIrhJIL0UTuC1+Oq50EhzCFNaSJcBwEe9fndgDsAM/1aZCxy77wROYHysAej7wyqAhi+qZcJVXmuj7NfDaHfD40="; //平台公钥 验签 //private string publicKey = "BK3M7nR1/AvhakqYMK23Kdek9ts2Ov732kL9t1ACoSSLqbAL2+IejtmJeaeTUNqSuctoDCT4Gsd0AGt7ZTIzgqY="; //乌鲁木齐平台公钥 验签 //public string encrypt(string data) //{ // string encryptData = ""; // try // { // encryptData = GMUtilLib.SignUtil.encryptMsg(appid, ak, sk, data); // return encryptData; // } // catch (Exception ex) // { // encryptData = ex.Message; // return encryptData; // } // finally // { // Global.writeLog("ak:" + ak +";sk:" + sk + ";appid:" + appid,data,encryptData); // } //} public string encrypt(string data, ref string signText) { string encryptData = ""; try { string strData = JsonConvert.SerializeObject(JObject.Parse(data), Newtonsoft.Json.Formatting.None); encryptData = SignUtils.encryptMsg(appid, ak, sk, strData, ref signText); return encryptData; } catch (Exception ex) { encryptData = ex.Message; return encryptData; } finally { //Global.writeLog("ak:" + appSecret + ";sk:" + privateKey + ";appid:" + appId, data, encryptData); } } public string sign(string data) { string encryptData = ""; try { encryptData = SignUtils.signSm3WithSm2(ak, sk, data); return encryptData; } catch (Exception ex) { encryptData = ex.Message; return encryptData; } finally { Global.writeLog("ak:" + ak + ";sk:" + sk + ";appid:" + appid, data, encryptData); } } public string sortKeys(JObject obj) { StringBuilder sb = new StringBuilder(); Dictionary dict = new Dictionary(); foreach (var p in obj.Properties()) { dict.Add(p.Name, p.Value.ToString()); } string[] keys = dict.Keys.ToArray(); Array.Sort(keys, string.CompareOrdinal); foreach (var k in keys) { if (sb.Length > 1) { sb.Append("&"); } sb.Append(k); sb.Append("="); sb.Append(dict[k]); } return sb.ToString(); } public bool verify(JObject signDto, string signData) { string error = ""; try { bool b = SMUtil.verify(signDto, ak, publicKey, signData); if (b) { error = "成功"; } else { error = "失败"; } return b; } catch (Exception ex) { error = ex.Message; return false; } finally { Global.writeLog("验签:ak:" + ak + ";publicKey:" + publicKey + ";appid:" + appid, signDto.ToString() + ";" + signData, error); } } public string decrypt(string encryptData) { string data = ""; try { data = SMUtil.decrypt(encryptData, appid, ak); return data; } catch (Exception ex) { data = ex.Message; return data; } finally { Global.writeLog("解密:ak:" + ak + ";sk:" + sk + ";appid:" + appid, encryptData, data); } } } }