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

如何计算包含SignedProperties的XML XAdES签名?

XAdES 签名的正确输入规则

你之前尝试的操作均不符合XML签名的标准流程,正确的签名输入需要严格遵循以下要求:

  • 签名的输入对象是规范化后的完整<SignedInfo>元素字节流,不能去掉SignedInfo标签,也不能直接拼接两个DigestValue做签名
  • 首先要匹配SignedInfo中CanonicalizationMethod节点指定的规范化算法(最常用的是http://www.w3.org/2001/10/xml-exc-c14n#排他规范化算法),对整个SignedInfo节点(含开始、结束标签、所有子元素、属性)执行规范化处理
  • 规范化处理时不需要手动调整标签格式:空标签的书写形式、空格、换行、命名空间声明都会由规范化算法自动按照标准统一输出,手动修改会导致结果错误
  • 规范化完成后,先按照SignatureMethod指定的哈希算法对规范化后的SignedInfo字节流计算哈希,再用签名私钥对该哈希值执行签名运算,最终将签名结果Base64编码后写入<SignatureValue>节点

补充校验点:你需要先确认SignedInfo内两个Reference的DigestValue是正确的:主文档、SignedProperties对象都需要先执行各自Reference中指定的规范化算法、再计算哈希得到DigestValue,任意一个DigestValue错误都会导致后续SignedInfo的签名结果错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 00:15:06