![](/img/trans.png)
[英]OpenPGP decryption in C# with X.509 Certificate .pfx file private key
[英]C# Decryption with X.509 certificate without private key
客户端使用X.509证书对消息进行加密,并将加密的消息发送到我的Web服务器。 客户端提供了没有私钥的X.509证书(导出为DER编码二进制X.509(.cer))。 现在我的任务是使用我拥有的X.509证书解密消息。
每当我尝试解密消息时,我得到“私钥不存在”异常,这是预期的,因为证书不包含私钥。 在没有私钥的情况下使用x.509证书解密消息是否可行?
其次,如果客户端为证书单独提供密码,我可以创建X509Certificate2的实例并使用它来解密消息,如:
X509Certificate2 c = new X509Certificate2("filename", "password");
您将需要私钥来解密消息。 例如,您可以要求您的客户端为您提供包含私钥的.pfx文件,但是,这有点向后,通常使用非对称加密,发件人(您的客户端)应该使用接收者加密消息(您的)公钥,您使用接收方(您的)私钥解密。 这样,私钥不会被多方共享,这降低了它被泄露的可能性。 私钥的整个想法是它是私有的 - 只有密钥的所有者才能使用它。
编辑:至于第二个问题,密码不是私钥。 您可以生成受密码保护的私钥。 这意味着,为了使用私钥进行解密,您还必须知道保护该私钥的密码。
编辑2:我不确定这是否有帮助,但我很难理解如何在一段时间内实际应用这些概念,所以我写了一系列可能对你有帮助的博客文章 。 我并不自称是安全专家,但我写的内容可能会让你开始。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.