我面临一个问题,无法弄清楚我错过了什么。我正在用 c# 计算数字签名,无法获得正确的签名值。有人知道签名前缀是否可以更改签名值吗?我的网络服务想要一个“ds”前缀,我在代码中所做的是计算签名,然后添加前缀。这可能是问题吗?我的摘要值是正确的,但签名值不同。是否需要先设置前缀,然后再计算签名?谢谢!
问问题
412 次
1 回答
2
我不知道你是否还有这个问题,但如果有人像我一样找到这个线程,这就是我找到的解决方案。我遇到了完全相反的问题,我需要去掉“ds:”前缀,所以我使用了 DOMSignContext 类中的 setDefaultNamespacePrefix() 方法。这是代码:
DOMSignContext dsc = new DOMSignContext(privateKey, document.getDocumentElement().getElementsByTagName("Rps").item(indexNFEs));
dsc.setDefaultNamespacePrefix(""); // 这才是真正重要的
签名.sign(dsc);
因此,要插入“ds:”,您可以尝试使用 setDefaultNamespacePrefix("ds:")
希望这对您或其他可能访问此页面的人有所帮助!
于 2013-07-06T00:56:20.390 回答