微信小程序加密數據解密算法 C#


獲取用戶頭像、昵稱、手機號等授權信息,需解密

C# 微信小程序加密數據解密算法 

 1         /// <summary>
 2         /// 微信小程序解密算法
 3         /// </summary>
 4         /// <param name="encryptedData">加密數據</param>
 5         /// <param name="iv">初始向量</param>
 6         /// <param name="sessionKey">從服務端獲取的SessionKey</param>
 7         /// <returns></returns>
 8         public string Decrypt(string encryptedData, string iv, string sessionKey)
 9         {
10             try
11             {
12                 //創建解密器生成工具實例
13                 AesCryptoServiceProvider aes = new AesCryptoServiceProvider();
14                 //設置解密器參數
15                 aes.Mode = CipherMode.CBC;
16                 aes.BlockSize = 128;
17                 aes.Padding = PaddingMode.PKCS7;
18                 //格式化待處理字符串
19                 byte[] byte_encryptedData = Convert.FromBase64String(encryptedData);
20                 byte[] byte_iv = Convert.FromBase64String(iv);
21                 byte[] byte_sessionKey = Convert.FromBase64String(sessionKey);
22 
23                 aes.IV = byte_iv;
24                 aes.Key = byte_sessionKey;
25                 //根據設置好的數據生成解密器實例
26                 ICryptoTransform transform = aes.CreateDecryptor();
27 
28                 //解密
29                 byte[] final = transform.TransformFinalBlock(byte_encryptedData, 0, byte_encryptedData.Length);
30                 //生成結果
31                 string result = Encoding.UTF8.GetString(final);
32                 return result;
33             }
34             catch (Exception ex)
35             {
36                 //LogHelper.Error(ex, "SnsProcessing", "Decrypt");
37             }
38             return string.Empty;
39         }

以下情況,有可能導致解密失效:

1、短時間的多次 wx.login

2、授權回調里,又再次 wx.login

也就是,沒事不要瞎調用 wx.login


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM