zoukankan      html  css  js  c++  java
  • 微信小程序加密数据解密算法 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

  • 相关阅读:
    [bzoj1613 Usaco2007 Jan]Running贝茜的晨练计划
    [bzoj1600][Usaco2008 Oct]建造栅栏
    [bzoj3208]花神的秒题计划I
    [vijos1011]滑雪
    [noip2007 pjt3] 守望者的逃离
    DP(1) 背包
    快速幂 模板及应用
    BZOJ1303: [CQOI2009]中位数图
    BZOJ1083: [SCOI2005]繁忙的都市
    Bzoj1084: [SCOI2005]最大子矩阵
  • 原文地址:https://www.cnblogs.com/qiujz/p/13207564.html
Copyright © 2011-2022 走看看