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

如何计算Forge of Empires HTTP请求的Signature签名?

Forge of Empires 请求Signature签名计算问题排查

可能的问题点及解决方案

1. Secret处理方式错误

你当前直接使用Base64编码的Secret字符串拼接,但签名计算通常需要解码后的原始字节密钥,而非Base64字符串本身。尝试先将Secret解码为字节再参与计算:

import base64
# 解码Base64格式的secret
secret_bytes = base64.b64decode(secret)

2. JSON序列化细节不匹配

Forge of Empires后端对JSON payload的序列化格式有严格要求,需确保你的生成结果和真实请求完全一致:

  • 键顺序:虽然你用了OrderedDict,但要确认是否和后端预期的键顺序完全对齐(比如原始JSON中的__class__、requestData等顺序不能错)。
  • 空格与分隔符:你的代码用separators=(',', ':')生成无空格JSON,但如果后端实际接收的是带缩进的JSON,会导致拼接内容不一致。建议抓包获取真实请求的JSON字符串,和你生成的encoded变量对比。

3. 拼接顺序错误

当前拼接顺序是user_key + secret + encoded,但部分场景下签名的拼接顺序可能不同,比如:

  • secret + user_key + encoded
  • encoded + user_key + secret
    建议尝试调整拼接顺序,验证是否匹配预期签名。

4. User Key未正确填充

代码中user_key = 是空值,需填入正确的User Key,且该值必须与请求中User-Key请求头的内容完全一致(注意大小写、特殊字符)。

5. 编码格式问题

默认data.encode()使用UTF-8编码,若后端使用其他编码(如latin-1),会导致哈希结果不一致。可尝试指定编码:

data_bytes = user_key.encode('latin-1') + secret_bytes + encoded.encode('latin-1')

修改后的示例代码

以下是包含Secret解码、严格JSON序列化的验证代码:

import json
import hashlib
import base64
from collections import OrderedDict

user_key = "你的实际User Key"  # 替换为真实User Key
secret = "6q01Zd9YKTSEVjhtqqGEYjBGr3pUTRFojYL+m2/6GorQ892bVcY4QMoqLbc6A+DhXQEaMtZfkczMgiHt3tVJ4w=="
secret_bytes = base64.b64decode(secret)

# 严格按照原始JSON的键顺序构建payload
payload = [OrderedDict([
    ("__class__", "ServerRequest"),
    ("requestData", [[24997]]),
    ("requestClass", "CityProductionService"),
    ("requestMethod", "pickupProduction"),
    ("requestId", 91)
])]

# 序列化时确保和后端一致,先尝试无空格格式
encoded = json.dumps(payload, separators=(',', ':'), ensure_ascii=False)

# 拼接:user_key字节 + 解码后的secret字节 + 序列化JSON字节
data = user_key.encode('utf-8') + secret_bytes + encoded.encode('utf-8')
signature = hashlib.md5(data).hexdigest()[:10]

print("Signature:", signature)

额外验证步骤

  1. 抓包获取真实请求的User-Key、Signature以及请求体,对比你生成的拼接内容和后端使用的是否完全一致。
  2. 确认MD5计算后的十六进制字符串前10位是否正确截取(注意大小写,通常后端会忽略大小写,但最好保持一致)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 07:57:24