Bouncycastle:使用公钥加密

时间:2016-11-04 07:03:46

标签: java encryption javamail bouncycastle public-key-encryption

我需要一些关于这个lib的帮助。获取以下示例代码BouncyCastle,我不明白这是如何工作的。  我的代码:http://pastebin.com/RieDfUd9   字典:chain [0],是发送者证书。        conv,是接收者证书。

我的问题是,我需要使用我发送电子邮件的公钥人员使用smime加密电子邮件。在我的测试环境中,我可以访问这两个证书。但在生产环境中,我只能访问我的证书(谁发送)链[0],以及接收者的公钥。我需要加密电子邮件,以便我可以使用谁正在阅读的公钥(以及用于加密消息的公钥)打开。

我已经尝试了几种方法,但在解密时总是遇到问题。

1 个答案:

答案 0 :(得分:0)

你做不到。您必须存储证书而不是公钥。

当邮件客户端收到电子邮件时,它必须知道使用哪个私钥来解密它 - 否则它将无法解密。

邮件客户端如何知道要使用哪个私钥?因为收件人信息也在加密邮件中。

您无法使用任何随机公钥加密数据加密密钥,并希望接收方知道可以使用哪个密钥对其进行解密。

这就是BouncyCastle API获取证书而不是密钥的原因。

您可以在此处详细了解SMIME加密的详细信息: https://security.stackexchange.com/questions/45222/smime-email-decryption-key-with-openssl

此链接详细介绍了如何为多个收件人执行解密过程: SMIME decryption for multiple recipients