收藏
回答

碰到这个问题:EVP_DecryptFinal_ex:bad decrypt

问题模块
API和组件

rt

报错:

Error: error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt

    at Error (native)

    at Decipheriv.Cipher.final (crypto.js:150:26)

    at WXBizDataCrypt.decryptData (/xxxxxxxx/utils/WXBizDataCrypt.js:19:29)


这里是 19 行:decoded += decipher.final('utf8');


问题是,这个是偶发的,有时候可以有时候不行。。。

用的是 WXBizDataCrypt.js

个人信息解密 ‘WXBizDataCrypt’ 中,node 版本。

最后一次编辑于  2017-01-10
回答关注问题邀请回答
收藏

3 个回答

  • 卫国
    卫国
    2018-08-28

    也许是这个原因:

    https://github.com/tencentyun/wafer2-startup/issues/132#issuecomment-392231500

    2018-08-28
    赞同 1
    回复 1
    • Ds.3783
      Ds.3783
      2018-11-05

      没错就是这个原因,如果当前session 没过期,wx.login()  code 是错的。然后解密的时候会失败。

      ERR_IN_DECRYPT_DATA这个解密错误,似乎是由过期seesion_key造成的,说来也奇怪:

      1. 客户端 wx.login拿到code

      2. 客户端wx.getUserInfo(改用button形式)拿到iv\encryptData

      3. 服务端用code换取session_key

      4. 服务端用session_key\iv\encryptData解密

      这个过程似乎很正常,但是每五到十分钟调用一次,能稳定复现解密失败的问题,问题在于session_key未过期的情况下,第三部用新的code换取到的session_key似乎是无效的,导致第四步解密失败。
      解决方法就是通过checkSession结果来判断是否需要重新换取新的session_key


      2018-11-05
      回复
  • 坏时少爷
    坏时少爷
    2018-12-31

    我获取用户手机号,解密的时候百分之一百会遇到这个问题。


    2018-12-31
    赞同
    回复
  • coder2017
    coder2017
    2018-05-04

    请问楼主,这个问题解决了吗?

    2018-05-04
    赞同
    回复 2
    • Hugh
      Hugh
      2018-07-21

      没有,还是会碰到

      2018-07-21
      回复
    • 布丁达人
      布丁达人
      11-08回复Hugh
      现在解决了吗我也会遇到这个问题
      11-08
      回复