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

MYRA Security API认证:HMAC-SHA256计算结果与示例不符求助

MYRA Security API认证Node.js实现错误排查

错误原因

你当前的代码输出错误,核心是HMAC计算的密钥与消息参数顺序完全颠倒。从你给出的错误输出反推,你实际运行的代码应该是将日期字符串作为HMAC密钥,把"MYRA"+secret作为待签名消息,这与官方要求的逻辑完全相反。

官方伪代码及Go实现的逻辑明确:

  • 密钥:"MYRA" + 你的API密钥(secret)
  • 待签名消息:符合ISO 8601格式的带时区时间戳字符串(如示例中的2014-04-26T13:04:00+0100)

正确的Node.js代码

const crypto = require("crypto");
const secret = "6b3a71954faf11e4b898001517fa8424";
const date = "2014-04-26T13:04:00+0100";
const hmacKey = "MYRA" + secret;

const dateKey = crypto.createHmac("sha256", hmacKey)
  .update(date, "utf8")
  .digest("hex");

console.log(dateKey); // 输出:1c2a270750de0cc1b8c3522494abd9a04e0b7801be6ece02755fa7bc9f8f5467

官方Go实现核心逻辑翻译

官方提供的Go语言签名流程核心步骤如下:

  • 生成时间戳:构造符合ISO 8601标准的带时区时间字符串(格式示例:YYYY-MM-DDTHH:mm:ss±HHMM)
  • 构造HMAC密钥:将固定前缀字符串"MYRA"与用户的API密钥(secret)拼接
  • 计算HMAC值:使用SHA256哈希算法,以拼接后的密钥对时间戳字符串进行HMAC计算
  • 转换为十六进制:将HMAC计算结果转为十六进制字符串,最终得到用于API认证的dateKey

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 08:17:04