我是靠谱客的博主 爱笑人生,最近开发中收集的这篇文章主要介绍微信小程序python解析获取用户手机号_python开发微信小程序解密获取的手机号,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1、在子应用内创建utils.py并添加以下内容

import base64

import json

from Crypto.Cipher import AES

class WXBizDataCrypt:

def __init__(self, appId, sessionKey):

self.appId = appId

self.sessionKey = sessionKey

def decrypt(self, encryptedData, iv):

# base64 decode

sessionKey = base64.b64decode(self.sessionKey)

encryptedData = base64.b64decode(encryptedData)

iv = base64.b64decode(iv)

cipher = AES.new(sessionKey, AES.MODE_CBC, iv)

decrypted = json.loads(self._unpad(cipher.decrypt(encryptedData)).decode())

if decrypted['watermark']['appid'] != self.appId:

raise Exception('Invalid Buffer')

return decrypted

def _unpad(self, s):

return s[:-ord(s[len(s)-1:])]

2、views.py

from .utils import WXBizDataCrypt

class MobileView(APIView):

'''解密手机号'''

def get(self, request):

# 获取加密手机号

encryptedData = request.GET.get('encryptedData')

# 处理加密的手机号

encryptedData = encryptedData + '=='

# 获取加密向量

vinum = request.GET.get('vinum')

# 处理加密向量

iv = vinum + '=='

# 获取openid

openid = request.GET.get('openid')

# appid

appId = APPID

# 获取sessinkey

redis_conn = get_redis_connection('session_key')

sessionKey = redis_conn.get('session_key_%s' % openid)

# sessionkey = request.data.get('session_key')

# 解密手机号

pc = WXBizDataCrypt(appId, sessionKey)

mobile_obj = pc.decrypt(encryptedData, vinum)

mobile = mobile_obj['phoneNumber']

# print(mobile)

data = {

'mobile':mobile

}

return Response(data=data, status=status.HTTP_200_OK)

最后

以上就是爱笑人生为你收集整理的微信小程序python解析获取用户手机号_python开发微信小程序解密获取的手机号的全部内容,希望文章能够帮你解决微信小程序python解析获取用户手机号_python开发微信小程序解密获取的手机号所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部