使用cer文件加密Xml

时间:2014-05-14 13:15:36

标签: c# xml encryption

这个网站

http://msdn.microsoft.com/en-us/library/vstudio/ms148633(v=vs.100).aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-2

使用“test.pfx”加密XML。

我希望通过X509证书加密我的XML并使用智能卡解密它。

我改变了那条线

X509Certificate2 cert = new X509Certificate2("test.pfx");

X509Certificate2 cert = new X509Certificate2("test.cer");

我的代码加密XML,在解密过程中我输入了我的smard卡引脚,我的XML被解密了。

当我使用test.pfx时,我必须更改

上的代码
X509Certificate2 cert = new X509Certificate2("test.pfx", "myPassword"); 

并且此代码对XML进行加密,但在解密过程中我没有输入我的smard卡引脚,我的XML也被解密了。

你能解释一下为什么在http://msdn.microsoft.com/网站上加密xml正在使用pfx文件吗?

XML加密* .cer文件是否安全? 我只想通过智能卡解密我的XML。

1 个答案:

答案 0 :(得分:1)

pfx文件类似于PKCS#12(.p12)文件。它通常包含证书和相应的私钥。

.cer文件只包含没有私钥的普通证书。

根据文档,引用示例中使用的EncryptedXml.Encrypt方法希望加密并签名生成的用于加密XML文档的AES密钥。

对于加密,使用证书中的公钥。 但是,对于签名文档,需要私钥,我认为这是使用.pfx文件的原因。