[英]Digital signature with x509 certificate and encryption
我想签署将在服务器上验证的xml文档。 我不知道如何使用数字证书(例如.cer和.pfx文件)对xml文件进行签名和加密。 我用谷歌搜索并找到了各种示例,但无法理解标准方法,即
对xml文件进行签名和加密的逐步过程是什么
这里有一个陷阱,
我想对客户端(.net c#代码)上的文件进行签名和加密,以便可以在服务器上对其进行验证和解密(java代码)
如果要在C#和Java中都执行此操作,则可能需要看一下BouncyCastle。 这是用于加密的流行库,它支持C#和Java。
资源: http : //www.bouncycastle.org/
您需要的是XMLDSig和XMLEnc(这是用于以XML方式对XML进行签名和加密的相应标准的名称,与PKCS7 / CMS相对,后者将数据作为不透明的Blob进行加密和签名)。
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也可以使用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.