收藏
回答

java解密微信encryptedData报错问题

开发要在登陆时,解密encryptedData,来获得手机号

在第一次登录时会报错
javax.crypto.BadPaddingException: pad block corrupted
后面再次登录,就能成功解密,返回手机号,过一段时间再次登录会再次报错
有没有前辈遇到过这个问题求解答

回答关注问题邀请回答
收藏

3 个回答

  •  
     
    2018-12-16

    所以 楼主 你最后是怎么处理这个问题的

    2018-12-16
    有用
    回复
  • kevin
    kevin
    2018-10-25

    获取微信用户绑定的手机号,需先调用wx.login接口

    https://developers.weixin.qq.com/miniprogram/dev/api/getPhoneNumber.html?search-key=%E6%89%8B%E6%9C%BA%E5%8F%B7

    2018-10-25
    有用
    回复 1
  • 半寸灰
    半寸灰
    2018-10-25

    一般如果  正常获取加密数据   那就是 session key  问题 。

    是不是获取手机号后调用过  wx.login

    2018-10-25
    有用
    回复 7
    • JMercer👻
      JMercer👻
      2018-10-25

      前端在wx.login里面调用的java接口获取手机号

      2018-10-25
      回复
    • 半寸灰
      半寸灰
      2018-10-25回复JMercer👻

      问题就在wx.login这里

      wx.login有几率更新session_key

      所以谨慎使用

      就是说  getPhoneNumber     是新的session_key

      wx.login后   有几率 把新的session_key  更新的    导致    getPhoneNumber的  是旧的了


      2018-10-25
      1
      回复
    • JMercer👻
      JMercer👻
      2018-10-25回复半寸灰

      第一次登录解密失败,第二次录解密成功,两次的session_key一样的,iv不同

      2018-10-25
      回复
    • 半寸灰
      半寸灰
      2018-10-25回复JMercer👻

      所以不知道你的代码逻辑

      和有没有调用过wx.login

      和  调用wx.login  与 getPhoneNumber     的顺序

      不能判断   哪里出问题  


      大部分都是  session_key  更新导致的

      2018-10-25
      回复
    • JMercer👻
      JMercer👻
      2018-10-25回复半寸灰

      谢谢,解答

      2018-10-25
      回复
    查看更多(2)
登录 后发表内容