在调用API时,调用要求如下:
调用方生成的签名值,生成方式是X-Client-Id+X-Timestamp+X-Nonce组合字符,使用HmacSHA256算法计算并经Base64编码后的字符串,密钥为签名认证令牌密钥
直接上代码:
# coding:utf-8
import requests
import json
import time
import hmac
import uuid
import base64
from hashlib import sha256
# 调用方生成的签名值,生成方式是X-Client-Id+X-Timestamp+X-Nonce组合字符,使用HmacSHA256算法计算并经Base64编码后的字符串,密钥为签名认证令牌密钥
def getSignature(XClientId, X_Signature):
XClientId = XClientId.encode('utf-8')
X_Signature = X_Signature.encode('utf-8')
signature = base64.b64encode(hmac.new(XClientId, X_Signature, digestmod=sha256).digest())
signature = str(signature, 'utf-8')
return signature
if __name__ == '__main__':
# 'Client ID' : '************'
# Client Secret: '************'
# AppKey '************'
timestramp = str(round(time.time() * 1000))
XClientId = '************'
X_Nonce = str(uuid.uuid1())
X_Signature = XClientId + timestramp + X_Nonce
signature = getSignature(XClientId,X_Signature)
print(signature)
简单点的写法:
signature = base64.b64encode(hmac.new(XClientId.encode('utf-8'), X_Signature.encode('utf-8'), digestmod=sha256).digest())
print(str(signature, 'utf-8'))