2012-09-06 149 views
0

尝试使用RSA算法加密文本消息。要加密消息,客户端的密钥是必需的。如何交换密钥。我研究了几个重要的交换算法,但找不到任何示例代码。RSA加密Java,密钥交换

有人可以指导教程,了解如何在互联网上交换密钥。

+0

所以在你的场景中,你有接收者的公钥/证书吗?每个派对都有这个吗? – pd40

+0

不是一个编程的具体问题,所以这是脱离主题。 –

回答

2

U可以使用此样本program作为密钥交换算法。它是2方之间的Diffie-Hellman密钥交换。试着了解这个算法是什么here

+0

Diffie-Hellman几乎是每个人都使用的,你需要传输密钥“带外”,但这往往是不实际的。 Diffie-hellman允许双方就加密密钥达成一致,而无需实际传输所述密钥。我的数学家朋友说,当我向他们展示它的时候,它是数学的。 – feldoh

+0

如果需要使用RSA密钥对进行加密,则Diffie-Hellman无用,因为它不提供身份验证。它确实有助于防止窃听,但大多数情况下,中间可能有一名男子。对于只是窃听,你也可以简单地交换公钥,然后用另一边的公钥加密,这样你就不再需要Diffie-Hellman了。 –

+0

@feldoh当你第一次看到它时,它非常神奇,但它不能解决认证问题。您需要事先存在某种信任。在RSA的情况下,您不再需要DH,尽管它可以用于建立会话。看到我的评论上面这一个。 –

0

分配密钥的主要方法是通过例如, PGP使用来自其他可信方的签名来赋予对密钥的信任。 X509证书(如浏览器中使用的证书)使用证书链,其中明确信任来自较高权力机构的证书。这些信任证书的方法称为PKI,公钥基础设施。

如果您没有建立的信任关系,则可以通过邮件发送对方证书或公钥,然后计算证书上的“指纹”。然后使用带外程序(电话,信封等)验证指纹。或者在检查每个其他凭据后,只需遇到并交换USB拇指驱动器即可。