我想使用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证书以加密文件。但是第二个示例没有(!)加载证书来解密示例。似乎加密文件包含要解密的所有必要数据?这是否意味着该文件可以被任何人解密?我想我在这里有一个理解滞后 - 为什么没有必要使用证书来解密数据?
此致 迈克尔
答案 0 :(得分:2)
在解密时,证书从计算机证书存储区加载。从您的第二个链接:
此过程中的代码示例使用当前用户帐户的本地证书存储中的X.509证书解密XML元素。
在该示例中,用于加密XML的公钥存储在加密数据中,用于从商店中查找适当的证书。
所以你的问题的答案 - “为什么没有必要使用证书来解密数据” - 是:这是必要的。证书已自动加载。