EncryptHelper_0903old.cs 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using PTMedicalInsurance.Common;
  7. using Newtonsoft.Json.Linq;
  8. //using GMUtilLib;
  9. using PTMedicalInsurance.Variables;
  10. using Newtonsoft.Json;
  11. using SM2Crypto.Lib;
  12. namespace PTMedicalInsurance.Helper
  13. {
  14. class EncryptHelper
  15. {
  16. //private string ak = "1G94963I20403F60C80A00005FF7A699";
  17. //private string sk = "APyE9G1D+C8g3qV3Z6VshXztOa55YJBgwN+P4WqU5n0x";
  18. //private string appid = "1G94963HS03V3F60C80A00000DB330D8";
  19. //测试
  20. //private string ak = "1H1INA1L90OH3F60C80A00008119D616";
  21. //private string sk = "APCIAgJqh3+AcK/IXL1WJD130i2q+6UblRxQzus3+sVw";
  22. //private string appid = "1H1INA1L30OG3F60C80A0000DEE43558";
  23. //正式
  24. private string ak = "1H62Q1KH205K76430B0A0000BF149773";
  25. private string sk = "YbNObZNMdUgwgLUEyK4ixNSkaCF9OPtCdDth9APWYKU=";
  26. private string appid = "1H62Q1KGP05J76430B0A00007144E257";
  27. private string publicKey = "BIrhJIL0UTuC1+Oq50EhzCFNaSJcBwEe9fndgDsAM/1aZCxy77wROYHysAej7wyqAhi+qZcJVXmuj7NfDaHfD40="; //平台公钥 验签
  28. //private string publicKey = "BK3M7nR1/AvhakqYMK23Kdek9ts2Ov732kL9t1ACoSSLqbAL2+IejtmJeaeTUNqSuctoDCT4Gsd0AGt7ZTIzgqY="; //乌鲁木齐平台公钥 验签
  29. //public string encrypt(string data)
  30. //{
  31. // string encryptData = "";
  32. // try
  33. // {
  34. // encryptData = GMUtilLib.SignUtil.encryptMsg(appid, ak, sk, data);
  35. // return encryptData;
  36. // }
  37. // catch (Exception ex)
  38. // {
  39. // encryptData = ex.Message;
  40. // return encryptData;
  41. // }
  42. // finally
  43. // {
  44. // Global.writeLog("ak:" + ak +";sk:" + sk + ";appid:" + appid,data,encryptData);
  45. // }
  46. //}
  47. public string encrypt(string data, ref string signText)
  48. {
  49. string encryptData = "";
  50. try
  51. {
  52. string strData = JsonConvert.SerializeObject(JObject.Parse(data), Newtonsoft.Json.Formatting.None);
  53. encryptData = SignUtils.encryptMsg(appid, ak, sk, strData, ref signText);
  54. return encryptData;
  55. }
  56. catch (Exception ex)
  57. {
  58. encryptData = ex.Message;
  59. return encryptData;
  60. }
  61. finally
  62. {
  63. //Global.writeLog("ak:" + appSecret + ";sk:" + privateKey + ";appid:" + appId, data, encryptData);
  64. }
  65. }
  66. public string sign(string data)
  67. {
  68. string encryptData = "";
  69. try
  70. {
  71. encryptData = SignUtils.signSm3WithSm2(ak, sk, data);
  72. return encryptData;
  73. }
  74. catch (Exception ex)
  75. {
  76. encryptData = ex.Message;
  77. return encryptData;
  78. }
  79. finally
  80. {
  81. Global.writeLog("ak:" + ak + ";sk:" + sk + ";appid:" + appid, data, encryptData);
  82. }
  83. }
  84. public string sortKeys(JObject obj) {
  85. StringBuilder sb = new StringBuilder();
  86. Dictionary<string, string> dict = new Dictionary<string, string>();
  87. foreach (var p in obj.Properties())
  88. {
  89. dict.Add(p.Name, p.Value.ToString());
  90. }
  91. string[] keys = dict.Keys.ToArray();
  92. Array.Sort(keys, string.CompareOrdinal);
  93. foreach (var k in keys)
  94. {
  95. if (sb.Length > 1)
  96. {
  97. sb.Append("&");
  98. }
  99. sb.Append(k);
  100. sb.Append("=");
  101. sb.Append(dict[k]);
  102. }
  103. return sb.ToString();
  104. }
  105. public bool verify(JObject signDto, string signData)
  106. {
  107. string error = "";
  108. try
  109. {
  110. bool b = SMUtil.verify(signDto, ak, publicKey, signData);
  111. if (b)
  112. {
  113. error = "成功";
  114. }
  115. else
  116. {
  117. error = "失败";
  118. }
  119. return b;
  120. }
  121. catch (Exception ex)
  122. {
  123. error = ex.Message;
  124. return false;
  125. }
  126. finally
  127. {
  128. Global.writeLog("验签:ak:" + ak + ";publicKey:" + publicKey + ";appid:" + appid, signDto.ToString() + ";" + signData, error);
  129. }
  130. }
  131. public string decrypt(string encryptData)
  132. {
  133. string data = "";
  134. try
  135. {
  136. data = SMUtil.decrypt(encryptData, appid, ak);
  137. return data;
  138. }
  139. catch (Exception ex)
  140. {
  141. data = ex.Message;
  142. return data;
  143. }
  144. finally
  145. {
  146. Global.writeLog("解密:ak:" + ak + ";sk:" + sk + ";appid:" + appid, encryptData, data);
  147. }
  148. }
  149. }
  150. }