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; 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"; 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 sign(string data) { string encryptData = ""; try { //encryptData = GMUtilLib.SignUtil.signSm3WithSm2(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 signWithSM2(JObject obj) { string data = sortKeys(obj); Sm2Crypto crypto = new Sm2Crypto(); string publicKey = "", privateKey = ""; Sm2Crypto.GetKey(out privateKey, out publicKey); crypto.PublicKey = publicKey; crypto.PrivateKey = privateKey; crypto.Str = data; return crypto.Encrypt(); } 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 int verify(string data,string encryptData) { string error =""; try { //if (GMUtilLib.SignUtil.verifySm3WithSm2(data, ak, encryptData, sk)) //{ // return 0; //} //else //{ // return -1; //} return 0; } catch (Exception ex) { error = ex.Message; return -1; } finally { Global.writeLog("ak:" + ak + ";sk:" + sk + ";appid:" + appid, data + ";" + encryptData, error); } } public string decrypt(string encryptData) { string data = ""; try { //data = GMUtilLib.SignUtil.decryptMsg(ak, sk, encryptData); return data; } catch (Exception ex) { data = ex.Message; return data; } finally { Global.writeLog("ak:" + ak + ";sk:" + sk + ";appid:" + appid, encryptData, data); } } } }