微信小程序加密数据解密

解密算法如下:
1.对称解密使用的算法为 AES-128-CBC,数据采用PKCS#7填充。
2.对称解密的目标密文为 Base64_Decode(encryptedData)。
3.对称解密秘钥 aeskey = Base64_Decode(session_key), aeskey 是16字节。
4.对称解密算法初始向量 为Base64_Decode(iv),其中iv由数据接口返回。

        /// <summary>  
        /// 根据微信小程序平台提供的解密算法解密数据  
        /// </summary>  
        /// <param name="encryptedData">加密数据</param>  
        /// <param name="iv">初始向量</param>  
        /// <param name="sessionKey">从服务端获取的SessionKey</param>  
        /// <returns></returns>  
        public string Decrypt(string encryptedData, string iv, string sessionKey)
        {
            UserphoneNumber userInfo;
            //创建解密器生成工具实例  
            AesCryptoServiceProvider aes = new AesCryptoServiceProvider();
            //设置解密器参数  
            aes.Mode = CipherMode.CBC;
            aes.BlockSize = 128;
            aes.Padding = PaddingMode.PKCS7;
            //格式化待处理字符串  
            byte[] byte_encryptedData = Convert.FromBase64String(encryptedData);
            byte[] byte_iv = Convert.FromBase64String(iv);
            byte[] byte_sessionKey = Convert.FromBase64String(sessionKey);

            aes.IV = byte_iv;
            aes.Key = byte_sessionKey;
            //根据设置好的数据生成解密器实例  
            ICryptoTransform transform = aes.CreateDecryptor();

            //解密  
            byte[] final = transform.TransformFinalBlock(byte_encryptedData, 0, byte_encryptedData.Length);

            //生成结果  
            string result = Encoding.UTF8.GetString(final);

            return result;

        }
全部评论

相关推荐

11-05 07:29
贵州大学 Java
点赞 评论 收藏
分享
评论
点赞
1
分享
牛客网
牛客企业服务