如何在Python 2.7中生成签名

时间:2019-07-13 16:59:06

标签: python-2.7 sha256

我需要使用带有以下签名参数的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()

1 个答案:

答案 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