WeChatCryptHelper.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Security.Cryptography;
  5. using System.Text;
  6. namespace HiTeachCC.Library.Common
  7. {
  8. public static class WeChatCryptHelper
  9. {
  10. public static string AESDecrypt(string encryptedDataStr, string key, string iv)
  11. {
  12. RijndaelManaged rijalg = new RijndaelManaged();
  13. //-----------------
  14. //设置 cipher 格式 AES-128-CBC
  15. rijalg.KeySize = 128;
  16. rijalg.Padding = PaddingMode.PKCS7;
  17. rijalg.Mode = CipherMode.CBC;
  18. rijalg.Key = Convert.FromBase64String(key);
  19. rijalg.IV = Convert.FromBase64String(iv);
  20. byte[] encryptedData = Convert.FromBase64String(encryptedDataStr);
  21. //解密
  22. ICryptoTransform decryptor = rijalg.CreateDecryptor(rijalg.Key, rijalg.IV);
  23. string result;
  24. using (MemoryStream msDecrypt = new MemoryStream(encryptedData))
  25. {
  26. using (CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read))
  27. {
  28. using (StreamReader srDecrypt = new StreamReader(csDecrypt))
  29. {
  30. result= srDecrypt.ReadToEnd();
  31. }
  32. }
  33. }
  34. return result;
  35. }
  36. }
  37. }