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);
代码如上 解密出现
填充无效,无法被移除。
解密用户手机号没有问题
byte[] encryptedData =Convert.FromBase64String(text); 解出来是160位数组
transform.TransformFinalBlock(encryptedData, 0, encryptedData.Length);提示“填充无效,无法被移除。”
亲测有效,必须先执行wx.login获取code ,再调用wx.getUserInfo 获取用户信息才能正确解密出用户信息,否则报错“填充无效 无法被移除 ”。
您好,你这个直接报错的问题解决了吗
我获取到的encryptedData 用c# 执行代码:Convert.FromBase64String(encryptedData),直接报错啊。提示我不是base64字符串。怎么回事?
这个问题解决了吗 解密有时可以 有时不可以