EncryptHelper.cs 7.5 KB

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