java - XML 签名的引用中的 DigestValues 来自哪里?
问题描述
我必须签署一个 XML 文件并将签名和文件放在同一个 XML 中。问题是,我必须在参考中生成 DigestValues,但我不确定它们来自哪里。我有一个例子,URI 指向同一个文档中的一个元素。但我不知道如何在先应用变换的同时生成这些部分的哈希值。
我试图拥有里面的元素,例如一个引用指向 KeyInfo,我试图获取证书的指纹,但它不起作用。
我试图只是散列部分的搅拌
我尝试过 XPath,但它不起作用,因为我必须在将所有内容作为 XML 输出之前生成 DigestValue
不幸的是,由于保密原因,我无法发布任何代码,但为了粗略了解我所说的我正在使用 w3c 标准:https ://www.w3.org/TR/xmldsig-core1/
我要么想要一种创建元素的方法,比如将 KeyInfo 作为数据对象,要么想要一种获取 KeyInfo 的正确 DigestValue 的方法。
解决方案
我想到了。
当你创建一个元素时,你必须指定一个 ID 属性并告诉它是一个 ID 属性。例如:
Element element1 = doc.createElement("element1");
element1.setAttribute("Id", "123456789");
element1.setIdAttribute("Id", true);
这将确保在签名时 ID 将被视为 URI。
推荐阅读
- loops - 循环数据管理
- sql - 如何从包含 JSON 数组的列中检索特定的 JSON 值
- php - 经常得到空的 $_POST 数据和 proxy_fcgi 错误 / Apache2 / PHP-FPM
- regex - 带双第二支架的端锚
- reactjs - 如何将“活动”类添加到 React 中的样式化组件
- php - ReactPHP 文件系统 - 找不到此安装支持的适配器
- google-sheets - 在 Google 表格中创建每日百分比变化
- apache-flink - 是否可以使不同的密钥具有独立的水印
- wordpress - WooCommerce htaccess 文件和 wp-login
- node.js - 无法在 express 服务器中读取 axios POST 表单数据。(尝试使用 express.pasrer 和 body-parser)