xone

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

 

服务器端视图函数:

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()

 

posted on 2017-05-10 13:39  周小百  阅读(201)  评论(0)    收藏  举报