EncryptHelper.cs 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  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. namespace PTMedicalInsurance.Helper
  11. {
  12. class EncryptHelper
  13. {
  14. //private string ak = "1G94963I20403F60C80A00005FF7A699";
  15. //private string sk = "APyE9G1D+C8g3qV3Z6VshXztOa55YJBgwN+P4WqU5n0x";
  16. //private string appid = "1G94963HS03V3F60C80A00000DB330D8";
  17. private string ak = "1H1INA1L90OH3F60C80A00008119D616";
  18. private string sk = "APCIAgJqh3+AcK/IXL1WJD130i2q+6UblRxQzus3+sVw";
  19. private string appid = "1H1INA1L30OG3F60C80A0000DEE43558";
  20. public string encrypt(string data)
  21. {
  22. string encryptData = "";
  23. try
  24. {
  25. //encryptData = GMUtilLib.SignUtil.encryptMsg(appid, ak, sk, data);
  26. return encryptData;
  27. }
  28. catch (Exception ex)
  29. {
  30. encryptData = ex.Message;
  31. return encryptData;
  32. }
  33. finally
  34. {
  35. Global.writeLog("ak:" + ak +";sk:" + sk + ";appid:" + appid,data,encryptData);
  36. }
  37. }
  38. public string sign(string data)
  39. {
  40. string encryptData = "";
  41. try
  42. {
  43. //encryptData = GMUtilLib.SignUtil.signSm3WithSm2(appid, ak, sk, data);
  44. return encryptData;
  45. }
  46. catch (Exception ex)
  47. {
  48. encryptData = ex.Message;
  49. return encryptData;
  50. }
  51. finally
  52. {
  53. Global.writeLog("ak:" + ak + ";sk:" + sk + ";appid:" + appid, data, encryptData);
  54. }
  55. }
  56. public string signWithSM2(JObject obj)
  57. {
  58. string data = sortKeys(obj);
  59. Sm2Crypto crypto = new Sm2Crypto();
  60. string publicKey = "", privateKey = "";
  61. Sm2Crypto.GetKey(out privateKey, out publicKey);
  62. crypto.PublicKey = publicKey;
  63. crypto.PrivateKey = privateKey;
  64. crypto.Str = data;
  65. return crypto.Encrypt();
  66. }
  67. public string sortKeys(JObject obj) {
  68. StringBuilder sb = new StringBuilder();
  69. Dictionary<string, string> dict = new Dictionary<string, string>();
  70. foreach (var p in obj.Properties())
  71. {
  72. dict.Add(p.Name, p.Value.ToString());
  73. }
  74. string[] keys = dict.Keys.ToArray();
  75. Array.Sort(keys, string.CompareOrdinal);
  76. foreach (var k in keys)
  77. {
  78. if (sb.Length > 1)
  79. {
  80. sb.Append("&");
  81. }
  82. sb.Append(k);
  83. sb.Append("=");
  84. sb.Append(dict[k]);
  85. }
  86. return sb.ToString();
  87. }
  88. public int verify(string data,string encryptData)
  89. {
  90. string error ="";
  91. try
  92. {
  93. //if (GMUtilLib.SignUtil.verifySm3WithSm2(data, ak, encryptData, sk))
  94. //{
  95. // return 0;
  96. //}
  97. //else
  98. //{
  99. // return -1;
  100. //}
  101. return 0;
  102. }
  103. catch (Exception ex)
  104. {
  105. error = ex.Message;
  106. return -1;
  107. }
  108. finally
  109. {
  110. Global.writeLog("ak:" + ak + ";sk:" + sk + ";appid:" + appid, data + ";" + encryptData, error);
  111. }
  112. }
  113. public string decrypt(string encryptData)
  114. {
  115. string data = "";
  116. try
  117. {
  118. //data = GMUtilLib.SignUtil.decryptMsg(ak, sk, encryptData);
  119. return data;
  120. }
  121. catch (Exception ex)
  122. {
  123. data = ex.Message;
  124. return data;
  125. }
  126. finally
  127. {
  128. Global.writeLog("ak:" + ak + ";sk:" + sk + ";appid:" + appid, encryptData, data);
  129. }
  130. }
  131. }
  132. }