收藏
回答

wx.getUserInfo 获取的加密数据解密 乱码

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 Bug wx.getUserInfo 工具 6.6.6 1.9.94

wx.getUserInfo 获取的加密数据解密 乱码


解密代码用的官方 稍微修改了下


if (strlen($this->sessionKey) != 24) {

//return ErrorCode::$IllegalAesKey;

return "";

}

$aesKey = base64_decode($this->sessionKey);


        

if (strlen($iv) != 24) {

//return ErrorCode::$IllegalIv;

return "";

}

$aesIV=base64_decode($iv);


$aesCipher=base64_decode($encryptedData);


$result = openssl_decrypt( $aesCipher, "AES-128-CBC", $aesKey, 1, $aesIV);

return $result;



解密结果就是

最后一次编辑于  2018-05-05
回答关注问题邀请回答
收藏

11 个回答

  • 洁
    2018-08-10

    你好,请问你这个iv出了什么问题呢,我用openssl解密,结果为空啊,好崩溃,不知道是什么问题啊,我把解出来的sessionkey,iv和endata直接带入到官方示例的demo,返回的是-41003错误,我把官方demo的这几个变量直接带入到我的代码里面是跟官方demo一样是解密成功的,这就意味着我的这三个变量存在不匹配的现状,但是怎么排查呢,麻烦指教呢谢谢~~~

    2018-08-10
    赞同
    回复
  • 青阳魂
    青阳魂
    2018-05-09


    ~

    2018-05-09
    赞同
    回复
  • 。。
    。。
    2018-05-07

    好的 谢谢 我就是iv 用错了 导致的

    2018-05-07
    赞同
    回复 1
    • 洁
      2018-08-11

      你好,请问你的iv是怎么用错了呢,为什么我传到后台的iv,sessionkey信息都对,解密结果却是空呢..能否麻烦指教一下   T——T

      2018-08-11
      回复
  • 。。
    。。
    2018-05-07

    iv    r7BXXKkLb8qrSNn05n0qiA==

    2018-05-07
    赞同
    回复
  • 。。
    。。
    2018-05-07

    加密数据

    i0iKgp4BsaCTybO0/60Lx+zVXIvHwy27r7rwGTOAQlegJqTmWgknogzLIKQuvVpQgXAAXKMNVkdGrmY3hLx6es8xnMBWjzwY2CAtXzh/p/oL/wtiqL8frz4aUqzfaMDsAp8ccoRZS2BeWEHh44xR2DsAtqkrMU5QhqPXZ1c10zE/fYgIHVpsg1nonTP/BKvrgOLRUK7a19oaU3ZB6lpiT175LK3UdACfOwWDZSw+qBuwMAhwnrxvnYrnHJFHh1R3+GoaHgpLo17aoLCO/NXjecVlzeNECuIdkbJWLsxZSx5RbI0yaqyEe6N3nG/AFg8uusipZblBnSvm9k6CW+AgVfrCbya13zMLMSNb1P/yt2jJPVstcAc3Fl1ZBaSoz54jS44v9iTTYLIBjylFNi5UywUqysU8rKehMjMqfbI9vhLdF/Iv9UqJDgv/7dv7hSPpd4dPt2edbzk7F/Nr1UF9rRt3ZzuvcVMj21GPdkA+mNZleK/vcReuuZeQxvDPZrCs1fGUswaKQoEECZthde20Sw==


    sessionKey GcD1xwDH7O+5s7ohGwlCHA==


    你能用你的程序帮我解下么? 看好着没? 谢谢了哈

    2018-05-07
    赞同
    回复
  • 。。
    。。
    2018-05-07

    我就是用官方的 唯一就是把验证appid相关的去掉了

    2018-05-07
    赞同
    回复
  • Y!an
    Y!an
    2018-05-07

    我用的 PHP,你可以先尝试一下用官方提供的代码,看看能不能正常解密,然后再对比一下你改过的代码,逐步排除吧

    2018-05-07
    赞同
    回复
  • 。。
    。。
    2018-05-07

    你是用php 还是 java ? 我两个都试了,都有问题 每次都是前边几个字符乱码

    2018-05-07
    赞同
    回复
  • Y!an
    Y!an
    2018-05-07

    那你检查一下你改的代码,是否在解密前漏了把填充的数据去掉,原始数据包是用了 PKCS#7 算法填充的,解密前不去掉填充的那一部分数据的话,是会出现部分乱码的情况的

    2018-05-07
    赞同
    回复
  • 。。
    。。
    2018-05-07

    if (strlen($this->sessionKey) != 24) {

    //return ErrorCode::$IllegalAesKey;

    return "";

    }

    $aesKey = base64_decode($this->sessionKey);


            

    if (strlen($iv) != 24) {

    //return ErrorCode::$IllegalIv;

    return "";

    }

    $aesIV=base64_decode($iv);


    $aesCipher=base64_decode($encryptedData);


    $result = openssl_decrypt( $aesCipher, "AES-128-CBC", $aesKey, 1, $aesIV);

    return $result;

    代码就是上边的 上次可能贴错了,我现在能解密 但是就是 每次解密前几个字符是乱码 其它都好着,应该不是代码问题,如果代码有问题 不可能解密成

    2018-05-07
    赞同
    回复

正在加载...