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

UIDAI API 2.5认证异常:返回随机字符串而非XML响应排查

UIDAI API 2.5 认证异常:非预期响应与HMAC值提取需求

问题概述

  • 对接UIDAI API 2.5做认证时,未获取到预期XML响应,仅返回随机字母数字组合,无任何错误提示
  • 定位到XMLdSig环节:移除该部分代码后,无任何输出
  • 已注释CURL代码块,当前无需调用接口获取响应
  • 核心需求:不需要生成ds:Signature值,仅需提取HMAC中的编码字母数字值

相关代码示例

// HMAC生成逻辑
function computeHMAC($payload, $secretKey) {
    return hash_hmac('sha256', $payload, $secretKey, false); // false返回十六进制字符串
}

// XMLdSig处理代码(疑似问题环节)
$dom = new DOMDocument();
$dom->loadXML($requestXml);
$sig = new XMLSecurityDSig();
$sig->setCanonicalMethod(XMLSecurityDSig::EXC_C14N);
$sig->addReference(
    $dom,
    XMLSecurityDSig::SHA256,
    ['http://www.w3.org/2000/09/xmldsig#enveloped-signature'],
    ['force_uri' => true]
);
$sig->sign($privateKey);
$sig->appendSignature($dom->documentElement);
$finalXml = $dom->saveXML();

输出截图

随机字母数字输出示例

官方规范参考

UIDAI API 2.5 认证文档中关于HMAC生成与XML数字签名的章节

排查方向与解决建议

  • 直接提取HMAC值:跳过完整的XMLdSig封装流程,在HMAC生成逻辑执行后直接获取返回的字母数字结果,无需将签名嵌入XML
  • 校验HMAC参数:确认生成HMAC时使用的负载数据、密钥、哈希算法(SHA256)与API规范完全一致,编码格式统一为UTF-8
  • 排查XML结构:移除XMLdSig后无输出,需检查请求XML的节点结构是否符合API要求,缺失必填节点会导致无法生成有效输出
  • 解码验证响应:返回的随机字母数字可能是Base64编码的XML,尝试对其进行Base64解码,查看是否为预期的XML内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 20:25:29