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

Android ELS HMAC POST API请求验证Node.js结果不符问题求助

排查Node.js计算Google ELS HMAC结果不符的问题

导致结果不匹配的核心原因有两个:

  • Payload内容错误:你代码中使用的payload是HTML转义后的&,但官方示例的原始payload是普通&符号。待签名内容完全不同,直接导致HMAC结果偏差。
  • 输出格式不匹配:官方文档的预期HMAC结果是Base64编码的二进制值,而你的代码用digest('hex')输出十六进制字符串,格式不对应。

修正后的代码如下:

const crypto = require('crypto');

// HMAC密钥(Base64解码)
const HMAC_KEY = Buffer.from('ASNFZ4mrze8BI0VniavN7wEjRWeJq83vASNFZ4mrze8BI0VniavN7wEjRWeJq83vASNFZ4mrze8BI0VniavN7w==', 'base64');

// 计算HMAC的函数
function computeHmac(payload) {
  return crypto.createHmac('sha1', HMAC_KEY)
    .update(payload, 'utf8')
    .digest('base64'); // 改为Base64输出,匹配文档要求
}

// 修正后的Payload:使用原始&符号
const payload = 'v=2&thunderbird_version=1&emergency_number=911';
const computedHmac = computeHmac(payload);
console.log('Computed HMAC:', computedHmac);

// 现在输出会匹配预期:e27dce749babe97c1188cf3e272b0492d018e8

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 08:52:10