EncryptHelper.cs 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using GMUtilLib;
  7. using PTMedicalInsurance.Variables;
  8. using Newtonsoft.Json.Linq;
  9. using Newtonsoft.Json;
  10. using SM2Crypto.Lib;
  11. using PTMedicalInsurance.Common;
  12. namespace PTMedicalInsurance.Helper
  13. {
  14. class EncryptHelper
  15. {
  16. ////兰州眼视光测试-医保移动支付-测试环境-支付宝
  17. //private string ak = "1GJG37E3S0L93F60C80A000054283D1E";
  18. //private string sk = "AdMyUwp+FFXfxtJ7dslvbs+vtFSb2FDKQ8eHtUSyyac=";
  19. //private string appid = "1GJG37E3M0L83F60C80A00009D4B001C";
  20. //private string publicKey = "BGMQ0mQ8DMOUYx4JBvwzFNHUesHnIjUe3f8lTnz+VeOZI8VU8LO0k3IyYXYz1hH2M6jBbpMC1T9IJnACNRGfMoU = "; //平台公钥 验签
  21. //兰州眼视光测试-医保移动支付-测试环境-微信
  22. //private string ak = "1HF6DJEVD01B3F60C80A0000659F707C";
  23. //private string sk = "AMLwcdEq2KM8hmJtREdiik4cw00dgPqA2GXB0uew/LJs";
  24. //private string appid = "1HF6DJEV601A3F60C80A0000787DE1B9";
  25. //private string publicKey = "BKBXP3QCHUwBUZgJ72rf4TUKnGN1FnE9pY5fSxHRwbhUEE/44CxCsHr026+PEIWC/TmRX5Z7uGgA9AKNIYAceBk="; //平台公钥 验签
  26. //兰州普瑞眼视光医院-医保移动支付-正式环境-微信
  27. private string ak = "1HORGG3BI05S75430B0A000062B6208A";
  28. private string sk = "XxTei2H2xUo/F4v/QbkdcQBxe/2gjyZjTnepVkbdcJ8=";
  29. private string appid = "1HORGG3BA05R75430B0A00004664FD75";
  30. private string publicKey = "BJlWERvnklYQa3/yXK5AcBtDzssnY1uubA5acDkIhDd828nJakZa40MQ6vHtAVgsflSE02GhVCWrEhYLzBtLuiY="; //平台公钥 验签
  31. //兰州眼视光正式
  32. //private string ak = "1H62Q1KH205K76430B0A0000BF149773";
  33. //private string sk = "YbNObZNMdUgwgLUEyK4ixNSkaCF9OPtCdDth9APWYKU=";
  34. //private string appid = "1H62Q1KGP05J76430B0A00007144E257";
  35. //昆明普瑞测试
  36. //private string ak = "1H1INA1L90OH3F60C80A00008119D616";
  37. //private string sk = "APCIAgJqh3+AcK/IXL1WJD130i2q+6UblRxQzus3+sVw";
  38. //private string appid = "1H1INA1L30OG3F60C80A0000DEE43558";
  39. //昆明普瑞正式
  40. //private string ak = "1H62Q1KH205K76430B0A0000BF149773";
  41. //private string sk = "YbNObZNMdUgwgLUEyK4ixNSkaCF9OPtCdDth9APWYKU=";
  42. //private string appid = "1H62Q1KGP05J76430B0A00007144E257";
  43. //ak:1H62Q1KH205K76430B0A0000BF149773;sk:YbNObZNMdUgwgLUEyK4ixNSkaCF9OPtCdDth9APWYKU=;appid:1H62Q1KGP05J76430B0A00007144E257
  44. /// <summary>
  45. /// 移动支付加密
  46. /// </summary>
  47. /// <param name="data"></param>
  48. /// <param name="signText"></param>
  49. /// <returns></returns>
  50. public string encrypt(string data, ref string signText)
  51. {
  52. string encryptData = "";
  53. try
  54. {
  55. string strData = JsonConvert.SerializeObject(JObject.Parse(data), Newtonsoft.Json.Formatting.None);
  56. encryptData = SignUtils.encryptMsg(appid, ak, sk, strData, ref signText);
  57. return encryptData;
  58. }
  59. catch (Exception ex)
  60. {
  61. encryptData = ex.Message;
  62. return encryptData;
  63. }
  64. finally
  65. {
  66. //Global.writeLog("ak:" + appSecret + ";sk:" + privateKey + ";appid:" + appId, data, encryptData);
  67. }
  68. }
  69. public string encrypt(string data)
  70. {
  71. string encryptData = "";
  72. try
  73. {
  74. encryptData = GMUtilLib.SignUtil.encryptMsg(appid, ak, sk, data);
  75. return encryptData;
  76. }
  77. catch (Exception ex)
  78. {
  79. encryptData = ex.Message;
  80. return encryptData;
  81. }
  82. finally
  83. {
  84. Global.writeLog("ak:" + ak + ";sk:" + sk + ";appid:" + appid, data, encryptData);
  85. }
  86. }
  87. public string sign(string data)
  88. {
  89. string encryptData = "";
  90. try
  91. {
  92. encryptData = GMUtilLib.SignUtil.signSm3WithSm2(appid, ak, sk, data);
  93. return encryptData;
  94. }
  95. catch (Exception ex)
  96. {
  97. encryptData = ex.Message;
  98. return encryptData;
  99. }
  100. finally
  101. {
  102. Global.writeLog("ak:" + ak + ";sk:" + sk + ";appid:" + appid, data, encryptData);
  103. }
  104. }
  105. public int verify(string data,string encryptData)
  106. {
  107. string error ="";
  108. try
  109. {
  110. if (GMUtilLib.SignUtil.verifySm3WithSm2(data, ak, encryptData, sk)) return 0; else return -1;
  111. }
  112. catch (Exception ex)
  113. {
  114. error = ex.Message;
  115. return -1;
  116. }
  117. finally
  118. {
  119. Global.writeLog("ak:" + ak + ";sk:" + sk + ";appid:" + appid, data + ";" + encryptData, error);
  120. }
  121. }
  122. public bool verify(JObject signDto, string signData)
  123. {
  124. string error = "";
  125. try
  126. {
  127. bool b = SMUtil.verify(signDto, ak, publicKey, signData);
  128. if (b)
  129. {
  130. error = "成功";
  131. }
  132. else
  133. {
  134. error = "失败";
  135. }
  136. return b;
  137. }
  138. catch (Exception ex)
  139. {
  140. error = ex.Message;
  141. return false;
  142. }
  143. finally
  144. {
  145. Global.writeLog("验签:ak:" + ak + ";publicKey:" + publicKey + ";appid:" + appid, signDto.ToString() + ";" + signData, error);
  146. }
  147. }
  148. public string decrypt(string encryptData)
  149. {
  150. string data = "";
  151. try
  152. {
  153. data = GMUtilLib.SignUtil.decryptMsg(ak, sk, encryptData);
  154. return data;
  155. }
  156. catch (Exception ex)
  157. {
  158. data = ex.Message;
  159. return data;
  160. }
  161. finally
  162. {
  163. Global.writeLog("ak:" + ak + ";sk:" + sk + ";appid:" + appid, encryptData, data);
  164. }
  165. }
  166. public string decrypt00(string encryptData)
  167. {
  168. string data = "";
  169. try
  170. {
  171. data = SMUtil.decrypt(encryptData, appid, ak);
  172. return data;
  173. }
  174. catch (Exception ex)
  175. {
  176. data = ex.Message;
  177. return data;
  178. }
  179. finally
  180. {
  181. Global.writeLog("解密:ak:" + ak + ";sk:" + sk + ";appid:" + appid, encryptData, data);
  182. }
  183. }
  184. }
  185. }