獲取微信手機號并解密

1.獲取手機號

//wxml文件使用button按鈕觸發(fā)獲取手機號事件廷痘,open-type="getPhoneNumber" 不能少

<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber"></button>

//js文件調(diào)用獲取事件

Page({

? getPhoneNumber (e) {

? ? console.log(e.detail.errMsg)

? ? console.log(e.detail.iv)

? ? console.log(e.detail.encryptedData)

? }

})

2.解密

2.1 獲取所需數(shù)據(jù)

手機號碼解密主要使用到的數(shù)據(jù)為:appId(開發(fā)者appid)呆贿、 session_key丐谋、 encryptedData(上邊方法中獲取的e.detail.encryptedData)住闯、iv(上邊方法中獲取的e.detail.iv)踏烙。

所以在所需數(shù)據(jù)方面主要要獲取的就是session_key踢涌。參考官方鏈接

獲取session_key所需的主要參數(shù)為:appid兼蜈、secret(這兩個參數(shù)都可以在小程序官方-開發(fā)-開發(fā)設置中獲热敛小)、js_code为狸。

//獲取js_code

wx.login({

? success (res) {

? ? console.log(res.code);

? }

})

最終獲取session_key肯腕。

wx.request({

? ? ? ? ? url: 'https://api.weixin.qq.com/sns/jscode2session?appid=' + 開發(fā)者appid + '&secret=' + 開發(fā)者secret + '&js_code=' + 獲取的code + '&grant_type=authorization_code',

? ? ? ? ? method: 'POST',

? ? ? ? ? header: {

? ? ? ? ? 'content-type': 'application/json'

? ? ? ? ? },

? ? ? ? ? success: function (res) {

? ? ? ? ? ? console.log(res.data.session_key);

? ? ? ? ? }

? ? ? ? })

2.2 解密返回數(shù)據(jù)

手機號碼解密:var Crypto = require('cryptojs/cryptojs.js').Crypto;主要使用的是 下包文件cryptojs-master里面的cryptojs.js文件,點擊下載钥平。 新建文件夾utils將下載的文件放在里面

微信官方提供了多種編程語言的示例代碼实撒,(點擊下載)但是沒有js包姊途,這里根據(jù)參考進行了稍微修改。

WXBizDataCrypt.js文件:?

// 引入CryptoJS

var Crypto = require('../utils/cryptojs-master/cryptojs.js').Crypto;

var app = getApp();

function RdWXBizDataCrypt(appId, sessionKey) {

? this.appId = appId

? this.sessionKey = sessionKey

}

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

? // base64 decode :使用 CryptoJS 中 Crypto.util.base64ToBytes()進行 base64解碼

? var encryptedData = Crypto.util.base64ToBytes(encryptedData)

? var key = Crypto.util.base64ToBytes(this.sessionKey);

? var iv = Crypto.util.base64ToBytes(iv);

? // 對稱解密使用的算法為 AES-128-CBC知态,數(shù)據(jù)采用PKCS#7填充

? var mode = new Crypto.mode.CBC(Crypto.pad.pkcs7);


? try {

? ? // 解密

? ? var bytes = Crypto.AES.decrypt(encryptedData, key, {

? ? ? ? asBpytes:true,

? ? ? ? iv: iv,

? ? ? ? mode: mode

? ? });


? ? var decryptResult = JSON.parse(bytes);


? } catch (err) {

? ? console.log(err)

? }

? if (decryptResult.watermark.appid !== this.appId) {

? ? console.log(err)

? }

? return decryptResult

}

module.exports = RdWXBizDataCrypt

在需要解密的頁面進行引入WXBizDataCrypt.js捷兰。

var WXBizDataCrypt = require('../../utils/WXBizDataCrypt')

//需解密的事件中添加下邊代碼獲取解密后的手機號碼

var appId = 開發(fā)者appid

var sessionKey = 獲取的sessionkey

var encryptedData = encryptedData

var iv = iv

var pc = new WXBizDataCrypt(appId, sessionKey)

var data = pc.decryptData(encryptedData , iv)

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

參考文檔

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市负敏,隨后出現(xiàn)的幾起案子贡茅,更是在濱河造成了極大的恐慌,老刑警劉巖其做,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件顶考,死亡現(xiàn)場離奇詭異,居然都是意外死亡妖泄,警方通過查閱死者的電腦和手機驹沿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蹈胡,“玉大人渊季,你說我怎么就攤上這事》=ィ” “怎么了却汉?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長荷并。 經(jīng)常有香客問我合砂,道長,這世上最難降的妖魔是什么源织? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任既穆,我火速辦了婚禮,結(jié)果婚禮上雀鹃,老公的妹妹穿的比我還像新娘幻工。我一直安慰自己,他們只是感情好黎茎,可當我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布囊颅。 她就那樣靜靜地躺著,像睡著了一般傅瞻。 火紅的嫁衣襯著肌膚如雪踢代。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天嗅骄,我揣著相機與錄音胳挎,去河邊找鬼。 笑死溺森,一個胖子當著我的面吹牛慕爬,可吹牛的內(nèi)容都是我干的窑眯。 我是一名探鬼主播,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼医窿,長吁一口氣:“原來是場噩夢啊……” “哼磅甩!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起姥卢,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤卷要,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后独榴,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體僧叉,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年棺榔,在試婚紗的時候發(fā)現(xiàn)自己被綠了瓶堕。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡掷豺,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出薄声,到底是詐尸還是另有隱情当船,我是刑警寧澤,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布默辨,位于F島的核電站德频,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏缩幸。R本人自食惡果不足惜壹置,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望表谊。 院中可真熱鬧钞护,春花似錦、人聲如沸爆办。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽距辆。三九已至余佃,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間跨算,已是汗流浹背爆土。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留诸蚕,地道東北人步势。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓氧猬,卻偏偏與公主長得像,于是被迫代替她去往敵國和親立润。 傳聞我的和親對象是個殘疾皇子狂窑,可洞房花燭夜當晚...
    茶點故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內(nèi)容