我需要使用带有以下签名参数的python生成HmacSHA256签名:
merchantId = "testMerchantExample"
apiHost = "apitest.example.com"
apiUrl = "/v1/example?startDate=2019-07-01&organizationId=" + merchantId
keyId = "KeyIdHere"
keyString = "KeyStringHere"
signatureParams = "host: "+apiHost+"\n"
+ "date: " + date + "\n"
+ "(request-target): get "+apiUrl+"\n"
+ "merchant-id: " + merchantId
然后需要将这些参数传递到函数中以生成SHA256签名。
我不知道如何在 Python 2.7 中执行此操作,我已经看到了一些生成签名等的示例。但是这些参数都没有。他们使用以下python库:
导入hmac 导入hashlib
任何帮助将不胜感激。
这是我在网上找到的代码,它可以正常工作并正确生成签名了:
import hmac
import hashlib
import binascii
def create_sha256_signature(key, message):
byte_key = binascii.unhexlify(key)
message = message.encode()
return hmac.new(byte_key, message, hashlib.sha256).hexdigest().upper()
答案 0 :(得分:0)
对于 Python2.7 + ,您可以使用以下解决方案生成sha256算法签名:
import hashlib
def get_sign(s):
h = hashlib.sha256()
h.update(s.encode('utf-8'))
return h.hexdigest()
sign = get_sign(APP_ID+input_str+salt+curtime+APP_SECRET)
print('sign: ', sign)
输出:
sign: 510f6f68b56caf56c7da770d1a4db8b9c46f4286cda052c699ed05637bd53517