我对用于处理多个公钥以加密数据的 Bouncy Castle API 流程感到好奇。例如,如果我有 3 个不同的客户端希望我加密数据并使用他们的公钥发送给他们进行加密,如果我分别标记每个客户端的公钥 - bouncy castle 如何确定客户端 1 应该使用公钥加密1 而不是公钥 3(这将是客户端 3 的公钥)?
从解密的角度来看,publicKeyEncryptedData 似乎附有一个 keyID 标签,可用于查找相应的私钥,但我不明白它如何选择正确的密钥进行加密。
我对用于处理多个公钥以加密数据的 Bouncy Castle API 流程感到好奇。例如,如果我有 3 个不同的客户端希望我加密数据并使用他们的公钥发送给他们进行加密,如果我分别标记每个客户端的公钥 - bouncy castle 如何确定客户端 1 应该使用公钥加密1 而不是公钥 3(这将是客户端 3 的公钥)?
从解密的角度来看,publicKeyEncryptedData 似乎附有一个 keyID 标签,可用于查找相应的私钥,但我不明白它如何选择正确的密钥进行加密。
它没有。您必须指定所有收件人(即用于加密的证书)。当您使用 PKCS#7 进行加密时,过程是:
解密过程为: