C# 微信个人信息解密
发布于 6 年前 作者 minghu 7429 次浏览 来自 问答

byte[] encryptedData = Convert.FromBase64String(edata);  // strToToHexByte(text);

                RijndaelManaged rijndaelCipher = new RijndaelManaged();

                rijndaelCipher.Key = Convert.FromBase64String(aesKey); // Encoding.UTF8.GetBytes(AesKey);

                rijndaelCipher.IV = Convert.FromBase64String(iv);// Encoding.UTF8.GetBytes(AesIV);

                rijndaelCipher.Mode = CipherMode.CBC;

                rijndaelCipher.Padding = PaddingMode.PKCS7;

                ICryptoTransform transform = rijndaelCipher.CreateDecryptor();

                byte[] plainText = transform.TransformFinalBlock(encryptedData, 0, encryptedData.Length);

                var result = Encoding.UTF8.GetString(plainText);

代码如上  解密出现

填充无效,无法被移除。

_
_

解密用户手机号没有问题

5 回复

byte[] encryptedData =Convert.FromBase64String(text); 解出来是160位数组


transform.TransformFinalBlock(encryptedData, 0, encryptedData.Length);提示“填充无效,无法被移除。”

亲测有效,必须先执行wx.login获取code ,再调用wx.getUserInfo 获取用户信息才能正确解密出用户信息,否则报错“填充无效 无法被移除 ”。

您好,你这个直接报错的问题解决了吗

我获取到的encryptedData 用c# 执行代码:Convert.FromBase64String(encryptedData),直接报错啊。提示我不是base64字符串。怎么回事?

这个问题解决了吗   解密有时可以 有时不可以  

回到顶部