我想签署将在服务器上验证的xml文档。我不知道如何使用.cer和.pfx文件等数字证书对xml文件进行签名和加密。我用Google搜索了发现了各种例子,但无法理解标准方式,即
对xml文件进行签名和加密的分步过程是什么?
这里有一个问题,
我想在这样的客户端(.net c#代码)上签名和加密文件 它可以在服务器上验证和解密(java代码)
答案 0 :(得分:1)
如果你想在C#和Java中都这样做,你可能想看看BouncyCastle。这是一个用于加密的流行库,它支持C#和Java。
答案 1 :(得分:0)
您需要的是XMLDSig和XMLEnc(这些是用于以XML方式对XML进行签名和加密的相应标准的名称,与PKCS7 / CMS相反,后者将数据加密并将数据标记为不透明blob)。
Java内置了XMLDSig API(read the article here),但XMLEnc似乎没有本机方式。
.NET Framework 4.0还具有用于XML签名和加密的内置机制,但它们并不那么明显。 See how-tos here
我们公司为SecureBlackbox安全任务提供了广泛的库,SecureBlackbox包括对XMLDSig,XMLEnc和XAdES的灵活易用的支持。 .NET和Java版本都可用。阅读SecureBlackbox的details about XMLBlackbox包。
更新:如果您不关心格式,并且XML数据的唯一路径是从一个特定位置到另一个特定位置,那么您可以使用PKCS#7 / CMS而不是XMLDSig和XMLEnc。 如上所述,CMS将您的数据视为不透明的blob并将其包装为二进制数据。 BouncyCastle是其中一个选项,SecureBlackbox也可以使用。