我正在尝试 digitally sign an XML document使用Java。我有一个实现与一些引用一起工作我发现在 javax.xml.crypto.dsig
中使用各种实现包。
但是,我当前的实现类似于 many的 examples我看过 - 它相当冗长,涉及使用来自 java.xml.crypto.dsig
的不少于 23 个不同的 API 类, javax.xml.transform
, 和 java.security
包裹等等。感觉进入了factory factory factory着陆,我花了几个小时才弄清楚发生了什么。
我的问题是,有更简单的方法吗?如果我有公钥/私钥文件并且我想添加一个 <Signature/>
对于 XML 文档,是否有一个库可以让我调用类似的东西:
OutputStream signFile(InputStream xmlFile, File privateKey)
...没有所有的 XMLSignatureFactory/CanonicalizationMethod/DOMSignContext 疯狂?
我不是很精通密码学,而且 Java 提供的 API 对于像我这样试图熟悉数字签名的开发人员来说似乎相当令人生畏。如果所有这些都是必要的,或者目前没有更友好的 API,那很好,我愿意接受它作为答案。我只是想知道我是否不必要地走上了艰难的道路。
最佳答案
看看Apache XML Security .要使用该包生成和验证签名,请查看 src_samples/org/apache/xml/security/samples/signature/
中的示例.
关于java - 有没有更简单的方法来用 Java 签署 XML 文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2052251/