美文网首页
微信小程序-解密手机号(纯前端)

微信小程序-解密手机号(纯前端)

作者: 江R | 来源:发表于2021-11-30 19:29 被阅读0次

    使用场景 微信小程序用户登录获取手机号

    第一步:下载cryptojs放在根目录utils下点这里下载cryptojs

    image.png

    第二步:在utils文件夹下命名WXBizDataCrypt.js文件,并写入下面的内容

    var Crypto = require('./cryptojs/cryptojs.js').Crypto;
    var app = getApp();
    function WXBizDataCrypt(appId, sessionKey) {
        this.appId = appId
        this.sessionKey = sessionKey
    }
    WXBizDataCrypt.prototype.decryptData = function(encryptedData, iv) {
        // base64 decode :使用 CryptoJS 中 Crypto.util.base64ToBytes()进行 base64解码
        var encryptedData = Crypto.util.base64ToBytes(encryptedData)
        // console.log(sessionKey)
        var key = Crypto.util.base64ToBytes(this.sessionKey);
        var iv = Crypto.util.base64ToBytes(iv);
        // console.log(encryptedData,key,iv)
        // 对称解密使用的算法为 AES-128-CBC,数据采用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 = WXBizDataCrypt
    

    第三步解密:

     //解密获取手机号
            getphonenumber(e) {;
                let phone = e.detail.encryptedData;
                let iv = e.detail.iv;
                const RdWXBizDataCrypt = require('../../utils/WXBizDataCrypt.js');
                var appId = '';//当前小程序appId
                let session_key = wx.getStorageSync('session_key');//后台获取
                let key = session_key;
                const pc = new WXBizDataCrypt(appId, key);
                const data = pc.decryptData(phone, iv);
                console.log(data.phoneNumber); //当前手机号码
            },
    

    这样就成功获取到解密后的手机号了。

    原文链接(https://blog.csdn.net/slow097/article/details/119677587
    )

    相关文章

      网友评论

          本文标题:微信小程序-解密手机号(纯前端)

          本文链接:https://www.haomeiwen.com/subject/jbndxrtx.html