对于wx.getShareInfo得到的数据encryptedData和iv的解密缺少C#版本的解密,请管理员尽快的解决!!!

还有就是为啥自己写的如下的代码,执行会报错填充值无效,无法删除!!!!请大家给看看,这个如何解决???

RijndaelManaged rijndaelCipher = new RijndaelManaged();

//16进制数据转成byte类型

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

rijndaelCipher.Key = Convert.FromBase64String(sessionKey);

rijndaelCipher.IV = Convert.FromBase64String(iv);

rijndaelCipher.Mode = CipherMode.CBC;

rijndaelCipher.BlockSize = 128;

rijndaelCipher.KeySize = 256;

rijndaelCipher.Padding=PaddingMode.PKCS7;

var transform= rijndaelCipher.CreateDecryptor();

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

string jieguo = Encoding.UTF8.GetString(plainText);

网友回复:

夜***:

      #region    微信分享好友,得到好友OpenId和Username

        [HttpGet]

        public HttpResponseMessage ShareInfoAES(string appId, string sessionKey, string encryptedData, string iv)

        {

            #region 解密部分

            RijndaelManaged rijndaelCipher = new RijndaelManaged();

            rijndaelCipher.Mode = CipherMode.CBC;

            rijndaelCipher.Padding = PaddingMode.PKCS7;

            rijndaelCipher.KeySize = 128;

            rijndaelCipher.BlockSize = 128;

            byte[] Data = Convert.FromBase64String(encryptedData);

            byte[] pwdBytes = Convert.FromBase64String(sessionKey);

            byte[] keyBytes = new byte[16];

            int len = pwdBytes.Length;

            if (len > keyBytes.Length) len = keyBytes.Length;

            System.Array.Copy(pwdBytes, keyBytes, len);

            rijndaelCipher.Key = keyBytes;

            rijndaelCipher.IV = Convert.FromBase64String(iv);

            ICryptoTransform transform = rijndaelCipher.CreateDecryptor();

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

            string jiemi = Encoding.UTF8.GetString(plainText);

            #endregion

            AESModel aesModel = JsonConvert.DeserializeObject(jiemi);

            if (appId != aesModel.watermark.appid)

            {

                return ReturnHttpResponse(“”);

            }

            else

            {

                return ReturnHttpResponse(JsonConvert.SerializeObject(aesModel));

            }

        }

        #endregion

#region 序列化的类

 public class AESModel

    {   

        ///

        /// OPENID

        ///

        public string openId { get; set; }

        ///

        ///昵称

        ///

        public string nickName { get; set; }

        ///

        ///性别

        ///

        public string gender { get; set; }

        ///

        ///城市

        ///

        public string city { get; set; }

        ///

        ///省份

        ///

        public string province { get; set; } 

        ///

        ///地区

        ///

        public string country { get; set; }

        ///

        ///URL

        ///

        public string avatarUrl { get; set; }

        ///

        ///unionId

        ///

        public string unionId { get; set; }

        ///

        ///水印

        ///

        public Watermark watermark { get; set; }

        public class Watermark

        {

            public string appid { get; set; }

            public string timestamp { get; set; }

        }

    }

#endregion

爱盈利(aiyingli.com)移动互联网具影响力的盈利指导网站。定位于服务移动互联网创业者,移动盈利指导。我们的目标是让盈利目标清晰可见!降低门槛,让缺乏经验、资金有限的个人和团队获得经验和机会,提高热情,激发产品。