Python API Post HMAC - 有效负载不匹配签名请求

问题描述

抱歉,我是新手,这里的所有东西我都试过了。

文档说明加密算法需要 2 个参数:签名密钥和输入字符串。

在 GET 调用中,哈希签名在标头中传递,输入字符串为空。这工作得很好,但我在消息下的输入字符串中输入的任何内容都不起作用。当消息中出现其他内容时,我可以看出 HMAC 正在发生变化,但似乎不匹配。

目前代码有空引号,但我尝试填充它。

import requests
import hmac
import base64

import hashlib

cert_file_path = "cert.pem"
key_file_path = "server.key"
data = "test.xml"

url = "https://API_Endpoint"

cert = (cert_file_path,key_file_path)
message = bytes('','utf-8')
secret = bytes('********************','utf-8')
auth = hmac.new(secret,message,digestmod=hashlib.sha256).digest()
signature = base64.b64encode(auth).decode()

headers = {"mac": signature,"content-type": "application/x-www-form-urlencoded; charset=UTF-8"}

print(signature)

r = requests.post(url,cert=cert,headers=headers,data=data)

print(r.content)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)