You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将JavaScript HMAC-SHA256签名函数转Python3遇错求助

问题解决方法

错误原因

  1. 参数传递问题:hmac.new 的 digestmod 参数传入 hashlib.sha256 可能在部分环境下引发类型错误,正确用法是传入哈希算法名称字符串(如 'sha256'),这种形式兼容性更强。
  2. 摘要编码不匹配:JavaScript 代码输出的是Base64 编码的 HMAC 摘要,而你当前的 Python 代码用 hexdigest() 生成的是十六进制字符串,两者编码格式完全不同。

修改后的 Python 代码

import hmac
import hashlib
import base64

message = "a"
key = "NgTriSCalcUltAbLoGResOnOuSeAKeSTraLryOuR"

# 初始化HMAC对象,密钥和消息需编码为字节格式
hmac_obj = hmac.new(key=key.encode('utf-8'), msg=message.encode('utf-8'), digestmod='sha256')
# 获取字节摘要后进行Base64编码,再转为字符串
signature = base64.b64encode(hmac_obj.digest()).decode('utf-8')

print(signature)

运行结果

执行上述代码后,输出将与 JavaScript 代码完全一致:

vC8XBte0duRLElGZ4jCsplsbXnVTwBW4BJsUV1qgZbo=

内容的提问来源于stack exchange,提问作者Nacho Sarmiento

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 10:35:50