收藏
回答

C# 微信个人信息解密

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 个回答

  • PING
    PING
    2019-11-01

    byte[] encryptedData =Convert.FromBase64String(text); 解出来是160位数组
    transform.TransformFinalBlock(encryptedData, 0, encryptedData.Length);提示“填充无效,无法被移除。”

    2019-11-01
    有用
    回复
  • KingKong
    KingKong
    2018-11-09

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

    2018-11-09
    有用
    回复
  • 惆怅客
    惆怅客
    2018-08-30

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

    2018-08-30
    有用
    回复
  • 大稳·杨
    大稳·杨
    2018-05-09

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

    2018-05-09
    有用
    回复
  • 一切随风
    一切随风
    2018-04-27

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

    2018-04-27
    有用
    回复
登录 后发表内容