问题描述
抱歉,我是新手,这里的所有东西我都试过了。
文档说明加密算法需要 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 (将#修改为@)