Mike 发表于 2020-2-15 13:19:53

2020.2.15号 接口请求头鉴权机制token+服务器时间戳生成重签名

本帖最后由 LittleTree 于 2020-2-15 13:19 编辑

# [root @ VM_169_13_centos
#haiyang]# python gen_sign.py AKIDcdjE8b6nSL3WWnMJo7IIo9iGyu43yDID7daZ 9df27ez7n86hs7nkfdun7amlttgmnmdcsbi9vw2n
# {'Date': 'Thu, 11 Oct 2018 13:53:46 GMT', 'Source': 'haiyangdong',
#'Authorization': 'hmac id="AKIDcdjE8b6nSL3WWnMJo7IIo9iGyu43yDID7daZ", algorithm="hmac-sha1", headers="date source", signature="3hiEDsVAM7N6p50RIDUfnho5StE="'}
# # cat gen_sign.py

"""
   API测试用例集
"""
# Created by haiyangdong on 2017/09/30

import datetime
import sys

token1 = "AKIDcdjE8b6nSL3WWnMJo7IIo9iGyu43yDID7daZ"
token2 = "9df27ez7n86hs7nkfdun7amlttgmnmdcsbi9vw2n"
header = {}
GMT_FORMAT = '%a, %d %b %Y %H:%M:%S GMT'
datet = datetime.datetime.utcnow().strftime(GMT_FORMAT)       #服务器的当前时间
header['Date'] = datet
source = "haiyangdong"
header['Source'] = source
auth = "hmac id=\"" + token1 + "\", algorithm=\"hmac-sha1\", headers=\"date source\", signature=\""
print auth

from hashlib import sha1
import hmac
import base64

signstr = "date: " + datet + "\n" + "source: " + source;
my_sign = hmac.new(token2, signstr, sha1).digest()
sign = base64.b64encode(my_sign)
header['Authorization'] = auth + sign + "\""
print header
print type(header)



接口请求头运行结果如下:
/Users/wangzhiqiang/Documents/python/venv/bin/python /Users/wangzhiqiang/PycharmProjects/dcs46/lesson/lesson3.py
hmac id="AKIDcdjE8b6nSL3WWnMJo7IIo9iGyu43yDID7daZ", algorithm="hmac-sha1", headers="date source", signature="
{'Date': 'Sat, 15 Feb 2020 05:06:28 GMT', 'Source': 'haiyangdong', 'Authorization': 'hmac id="AKIDcdjE8b6nSL3WWnMJo7IIo9iGyu43yDID7daZ", algorithm="hmac-sha1", headers="date source", signature="UjHZ0ZEo5u+auEXka8RjkOWGif4="'}
<type 'dict'>

页: [1]
查看完整版本: 2020.2.15号 接口请求头鉴权机制token+服务器时间戳生成重签名