微信小程序手机号解密

微信小程序手机号解密,第1张

微信小程序手机号解密步骤

一、通过getPhoneNumber用户授权获取获取加密后的手机知伍搏号信息

<template>

<view class="content">

<button class="login-btn btn2" open-type="getPhoneNumber"

@getphonenumber="getPhoneNumber">手机号快捷登录</button>

</view>

</template>

引搭祥用WXBizDataCrypt.js

var WXBizDataCrypt = require('@/pages/index/WXBizDataCrypt.js')

二、解密前先调用wx.login,获取code发送后台返回sessionkey

getPhoneNumber(e) {

console.log('e',e)

var pc = new WXBizDataCrypt('appid',this.sessionKey)

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

console.log('解密后 data:'橘腔,pc)

},

//WXBizDataCrypt.js

问题:wx.getUserInfo 解密用户信息出现概率性失败

正确顺序: wx.login() =>wx.getUserInfo

1.首先我们来讨论下:wx.login()后执行了什么 *** 坦搏作?

刷新登录状态让携祥,概率性生成新的 sessionKey(密钥) 和与其对应的 encryptedData(加密数据)

2.再有一点: sessionKey 是有时效性的,如果通过缓存拿取的话,需要先 wx.checkSession()进行检测是否过期

3.那我们就能发现:在先授权(先拿到encryptedData),再调用wx.login()的情况下:

(1).一旦生成了新的sessionKey,就会导致旧的encryptedData无法被解密

(2).即使sessionKey未刷新但是sessionKey过期也会导致无法解密

所以最终解决方案:进入授权页面即调隐让用wx.login(),刷新登录状态(能避免 sessionKey 过期),再进行授权。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8212096.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-14
下一篇2023-04-14

发表评论

登录后才能评论

评论列表(0条)

    保存