【发布时间】:2011-01-04 08:48:08
【问题描述】:
我正在尝试使用 Java digitally sign an XML document。我有一个使用我发现的一些参考的实现,这些参考在javax.xml.crypto.dsig 包中使用了各种实现。
但是,我当前的实现就像我看过的 examples 中的 many - 它相当冗长,涉及使用来自 java.xml.crypto.dsig、javax.xml.transform 和 @987654330 的不少于 23 个不同的 API 类@ 包等。感觉就像我进入了factory factory factory 土地,我花了几个小时才弄清楚发生了什么。
我的问题是,有更简单的方法吗?如果我有公钥/私钥文件并且我想在 XML 文档中添加 <Signature/>,有那里的图书馆让我可以调用类似的东西:
OutputStream signFile(InputStream xmlFile, File privateKey)
...没有所有的 XMLSignatureFactory/CanonicalizationMethod/DOMSignContext 疯狂?
我不是很精通密码学,Java 提供的 API 对于像我这样试图熟悉数字签名的开发人员来说似乎相当令人生畏。如果所有这些都是必要的,或者目前没有更友好的 API,那很好,我愿意接受它作为答案。我只是想知道我是否在这里不必要地采取了艰难的道路。
【问题讨论】:
-
作为替代解决方案,我能够进行单行系统调用并使用aleksey.com/xmlsec 对 XML 进行签名。我没有将此作为答案发布,因为它不在问题的范围内(即“在 Java 中”)。
-
“工厂工厂工厂”链接已损坏。编辑:其他一些链接也是如此
标签: java xml cryptography digital-signature xml-signature