找回密码
 立即注册
  • 便民服务
  • 关注我们
  • 社区新手

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="'}

# [root @ VM_169_13_centos haiyang]  # 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)

123.png

接口请求头运行结果如下:
/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'>

分享至 : QQ空间
收藏
与其想象不如现在开始行动!

0 个回复

您需要登录后才可以回帖 登录 | 立即注册