0

我想签署将在服务器上验证的 xml 文档。我不知道如何使用 .cer 和 .pfx 文件等数字证书对 xml 文件进行签名和加密。我用谷歌搜索并找到了各种示例,但无法理解标准方式,即

对xml文件进行签名和加密的分步过程是什么

这里的一个问题是,

我想在客户端(.net c# 代码)上对文件进行签名和加密,以便可以在服务器(java 代码)上对其进行验证和解密

4

2 回答 2

1

如果你想在 C# 和 Java 中都这样做,你可能想看看 BouncyCastle。这是一个流行的加密库,它支持 C# 和 Java。

资源: http: //www.bouncycastle.org/

于 2012-04-20T10:34:31.730 回答
0

您需要的是 XMLDSig 和 XMLEnc(这些是用于以 XML 方式签名和加密 XML 的相应标准的名称,与将数据加密和签名为不透明 blob 的 PKCS7/CMS 相反)。

Java 具有内置的 XMLDSig API(在此处阅读文章),但似乎没有 XMLEnc 的本地方式。

.NET Framework 4.0 还具有用于 XML 签名和加密的内置机制,但它们并不那么明显。在此处查看操作方法

我们公司为名为 SecureBlackbox 的安全任务提供广泛的库,SecureBlackbox 包括对 XMLDSig、XMLEnc 和 XAdES 的灵活且易于使用的支持。.NET 和 Java 版本均可用。阅读有关SecureBlackbox 的 XMLBlackbox 包的详细信息。

更新:如果您不关心格式并且您的 XML 数据的唯一路径是从一个特定位置到另一个特定位置,那么您可以使用 PKCS#7/CMS 代替 XMLDSig 和 XMLEnc。如上所述,CMS 将您的数据视为不透明的 blob,并将其包装成二进制数据。BouncyCastle是其中一种选择,SecureBlackbox 也可以使用。

于 2012-04-20T10:53:44.593 回答