获取手机号之后解密问题?
发布于 4 年前 作者 xiuying03 10970 次浏览 来自 官方Issues

以下是解密代码:

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 回复

后端解密的

回到顶部