如何正确加密/解密XMl与X.509证书?

时间:2017-07-12 14:00:29

标签: c# xml encryption x509 encryption-asymmetric

我想使用X.509证书加密XML文件,也要解密它。据我所知,我需要使用公钥(在证书内)加密XML和私钥来解密XML。因此,只有拥有私钥的人才能读取解密数据。 Microsoft在此处提供了一些加密/解密代码:

加密:https://msdn.microsoft.com/en-us/library/ms229744(v=vs.110).aspx

解密:https://msdn.microsoft.com/en-us/library/ms229943(v=vs.110).aspx

从第一个示例中可以看出,将加载X.509证书以加密文件。但是第二个示例没有(!)加载证书来解密示例。似乎加密文件包含要解密的所有必要数据?这是否意味着该文件可以被任何人解密?我想我在这里有一个理解滞后 - 为什么没有必要使用证书来解密数据?

此致 迈克尔

1 个答案:

答案 0 :(得分:2)

在解密时,证书从计算机证书存储区加载。从您的第二个链接:

  

此过程中的代码示例使用当前用户帐户的本地证书存储中的X.509证书解密XML元素

在该示例中,用于加密XML的公钥存储在加密数据中,用于从商店中查找适当的证书。

所以你的问题的答案 - “为什么没有必要使用证书来解密数据” - 是:这是必要的。证书已自动加载。