2012-09-06 145 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拇指驅動器即可。