服务器端视图函数:
from django.shortcuts import render,HttpResponse # Create your views here. import time def asset(request): app_key_dirt = { '3316a729-154b-4d39-8d13-ab08def11698': { 'name':'熊猫烧香', 'level':10, 'secret':'dds=gdfed' }, '2b43e2f7-8699-420d-8f63-73b073eeace7': { 'name': '熊猫视频', 'level': 1, 'secret':'ded=dgfwefdg' }, 'record':{'sign':'475ab83ea38049de1e2d5c192a12715a', 'timestamp': 1494388620.07033} } def create_md5(app_key,app_secret,timestamp): import hashlib m = hashlib.md5(bytes(app_secret,encoding='utf-8')) temp = '%s|%s'%(app_key,timestamp) m.update(bytes(temp,encoding='utf-8')) return m.hexdigest() print(request.path_info) app_key = request.GET.get('app_key') app_sign = request.GET.get('app_sign') app_timestamp = request.GET.get('timestamp') # 拿到客户端发送的时间戳. server_timestamp = time.time() server_sign = create_md5(app_key, app_key_dirt[app_key]['secret'], app_timestamp) record_list = app_key_dirt['record'] for i in record_list: if app_sign == i['sign']: return HttpResponse('验证失败') if app_key in app_key_dirt.keys() and app_sign == server_sign and (server_timestamp - float(app_timestamp)) < 5: return HttpResponse(app_key_dirt[app_key]['name']) else: return HttpResponse('验证失败')
客户端
import requests,time def god2(): def create_md5(app_key,app_secret,timestamp): import hashlib m = hashlib.md5(bytes(app_secret,encoding='utf-8')) temp = '%s|%s'%(app_key,timestamp) m.update(bytes(temp,encoding='utf-8')) return m.hexdigest() timestamp = time.time() app_secret = 'dds=gdfed' app_key = '3316a729-154b-4d39-8d13-ab08def11698' app_sign = create_md5(app_key,app_secret,timestamp) print(app_sign) data_dict = { 'k1':'v1', 'k2':'v2', } ret = requests.post( url='http://127.0.0.1:8001/asset/', params={'app_sign':app_sign,'timestamp':timestamp,'app_key':app_key}, json=data_dict ) print(ret.text) if __name__ == '__main__': god2()

浙公网安备 33010602011771号