zoukankan      html  css  js  c++  java
  • 微信解密encryptedDataStr获取用户信息

    A:<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber"></button>
    B:<button open-type="getUserInfo" lang="zh_CN" bindgetphonenumber="getuserInfo"></button>

    注意:

    如果你用A请求的方法返回的信息是手机号,用B请求的返回的是用户基本信息 ,open-type决定

    方法:
      /// <summary>
            /// 解密encryptedDataStr
            /// </summary>
            /// <param name="session_key"></param>
            /// <param name="iv"></param>
            /// <param name="encryptedDataStr"></param>
            /// <returns></returns>
            public static string AES_decrypt(string session_key, string iv, string encryptedDataStr)
            {
                if (session_key == "undefined" ||  iv == "undefined" || encryptedDataStr == "undefined")
                {
                    return "404";
                }
                else
                {
                    RijndaelManaged rijalg = new RijndaelManaged();
                    //-----------------      
                    //设置 cipher 格式 AES-128-CBC       
                    rijalg.KeySize = 128;
                    rijalg.Padding = PaddingMode.PKCS7;
                    rijalg.Mode = CipherMode.CBC;
                    rijalg.Key = Convert.FromBase64String(session_key);
                    rijalg.IV = Convert.FromBase64String(iv);
                    byte[] encryptedData = Convert.FromBase64String(encryptedDataStr);
                    //解密      
                    ICryptoTransform decryptor = rijalg.CreateDecryptor(rijalg.Key, rijalg.IV);
                    string result;
                    using (MemoryStream msDecrypt = new MemoryStream(encryptedData))
                    {
                        using (CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read))
                        {
                            using (StreamReader srDecrypt = new StreamReader(csDecrypt))
                            {
                                result = srDecrypt.ReadToEnd();
                            }
                        }
                    }
                    return result;
                }
               
            }

  • 相关阅读:
    性能测试指标
    性能优化——存储性能优化
    装背包 --- 深度优先搜索时间复杂度 ... 线性搜索
    深度优先搜索之偏爱时间复杂度
    Oh,mygoddess
    优先队列 + 并查集 + 字典树 + 欧拉回路 + 树状数组 + 线段树 + 线段树点更新 + KMP +AC自动机 + 扫描线
    Nightmare --- 炸弹时间复位
    3Ddungeon-------三维搜索-----偷个懒 把 亡命逃窜 的代码修改了一下 拿来用了
    迷宫寻宝(一) ---- 状态压缩
    NYOJ999 师傅又被妖怪抓走了
  • 原文地址:https://www.cnblogs.com/aghk/p/13268056.html
Copyright © 2011-2022 走看看