Python Hmac-SHA256的输出与预期不同

Python Hmac-SHA256的输出与预期不同,python,python-3.x,hmac,Python,Python 3.x,Hmac,我有Python脚本生成一个签名来访问ShopeeAPI Shopee文档的屏幕截图: def验证推送消息(自): url=”https://partner.shopeemobile.com/api/v1/shop/get " 请求正文=“{“合作伙伴id”:844103,“shopid”:30207467,“时间戳”:1579104428}” base_string=url+“|”+请求_体 机密密钥= cal_auth=hmac.new(密钥,字节(基本字符串,'latin-1'),has

我有Python脚本生成一个签名来访问ShopeeAPI

Shopee文档的屏幕截图:

def验证推送消息(自):
url=”https://partner.shopeemobile.com/api/v1/shop/get "
请求正文=“{“合作伙伴id”:844103,“shopid”:30207467,“时间戳”:1579104428}”
base_string=url+“|”+请求_体
机密密钥=
cal_auth=hmac.new(密钥,字节(基本字符串,'latin-1'),hashlib.sha256).hexdigest()
打印(cal_auth)
输出应该是

f6e26cccdb02d751219711f57e5db7d8d35f55a934244f4b67768dcc7b8ed7c8

但当我试着运行脚本时,我得到了

C31C825412856D29400602655CD3CF47638D7BD897B870988EE27BA7A5C6B

我的代码怎么了


(对不起,我的英语不好)。

输出时间戳是否与时间戳有关?如果是,它应该总是生成一个不同的值。@AlexW:No HMAC只依赖于键和输入文本,对于给定的固定时间戳值,它应该是常量。@AlexW是的,但我尝试了相同的参数,但python脚本的不同输出。你能帮我一下我犯了什么错误吗?谢谢您确定密钥设置中没有编码问题吗?在这里尝试使用bytearray符号,例如
b'my secret key'
是否有额外的空格终止变量
url
?和/或请求正文中的额外空格?垃圾进垃圾出?
def verify_push_msg(self):

url = "https://partner.shopeemobile.com/api/v1/shop/get "
request_body = '{ "partner_id": 844103, "shopid": 30207467, "timestamp": 1579104428 }'
base_string = url + '|' + request_body

secret_key = <**SECRET KEY HERE**>

cal_auth = hmac.new(secret_key, bytes(base_string, 'latin-1'), hashlib.sha256).hexdigest()

print(cal_auth)