收藏
回答

获取手机号之后解密问题?

以下是解密代码:

var crypto = require('crypto')

function WXBizDataCrypt(appId, sessionKey) {

  this.appId = appId

  this.sessionKey = sessionKey

}

WXBizDataCrypt.prototype.decryptData = function (encryptedData, iv) {

  // base64 decode

  var sessionKey = new Buffer(this.sessionKey, 'base64')

  encryptedData = new Buffer(encryptedData, 'base64')

  iv = new Buffer(iv, 'base64')

  try {

      // 解密

    var decipher = crypto.createDecipheriv('aes-128-cbc', sessionKey, iv)

    // 设置自动 padding 为 true,删除填充补位

    decipher.setAutoPadding(true)

    var decoded = decipher.update(encryptedData, 'binary', 'utf8')

    decoded += decipher.final('utf8')

    decoded = JSON.parse(decoded)

  } catch (err) {

    throw new Error('Illegal Buffer')

  }

  if (decoded.watermark.appid !== this.appId) {

    throw new Error('Illegal Buffer')

  }

  return decoded

}

module.exports = WXBizDataCrypt



以下是调用代码:

let pc = new WXBizDataCrypt('***************', this.sessionKey);

let data = pc.decryptData(e.detail.encryptedData, e.detail.iv);

求指教


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

1 个回答

  • Mr.Zhao
    Mr.Zhao
    2021-05-17

    后端解密的

    2021-05-17
    有用
    回复 4
    • 贵在坚持
      贵在坚持
      2021-05-17
      后端可以,前端死活不行
      2021-05-17
      回复
    • Mr.Zhao
      Mr.Zhao
      2021-05-17回复贵在坚持
      为啥要在前端?想不明白
      2021-05-17
      回复
    • hυι
      hυι
      2021-08-16回复Mr.Zhao
      因为后端有别的活,前端能解决就想尽办法去解决。
      2021-08-16
      回复
    • Mr.Zhao
      Mr.Zhao
      2021-08-16回复hυι
      因为关系差,弱势,不是有别
      2021-08-16
      回复
登录 后发表内容