2011-05-22 19 views
0

我是一個J2ME程序員。現在我的項目與通過HTTP向服務器發送數據相關。在這裏,我使用Bouncy Castle庫(Triple DES)對J2ME端的數據進行加密。我也維護服務器端編碼。如何在不事先修復密鑰的情況下將數據從J2ME客戶端傳遞到服務器?

然後在服務器端將接收到的數據解密並存儲在數據庫中。在這裏,我假設在我的代碼中靜態地修復了這個鍵。在服務器端和J2ME端,我使用相同的鍵值。

但我有要求,密鑰是隨機生成的,不知道用戶。

如果我使用J2ME部分中的某個密鑰對數據進行加密,那麼服務器如何在不知道密鑰的情況下對其進行解密?還是有任何其他機制可以用來解決這個問題?非對稱密碼術能幫助我嗎?

+2

呃,什麼?請花更多時間在你的問題上,這是不可理解的。順便說一句,3DES是非常過時的,當然不是不對稱。 – 2011-05-22 13:27:22

回答

2

的方式asymmetric cryptography工作如下:

  1. 服務器生成一對公鑰/私鑰
  2. 它發送公鑰到客戶端
  3. 客戶端使用公鑰加密的一些祕密消息
  4. 服務器使用私鑰解密消息。

非對稱算法比對稱加密慢,因此它們通常只用於在服務器和客戶端之間交換密碼,然後使用對稱算法對消息進行加密。

+1

如果你解釋它,請正確解釋它。補充說明:您需要爲所有客戶提供公鑰或某種建立信任的方式(PKI)。客戶端可以生成用於加密的(隨機)密鑰,例如使用AES。他們加密消息。客戶端然後可以發送加密的消息和使用公鑰加密的密鑰。另一方使用私鑰解密密鑰,然後解密該消息。你需要一些方法來驗證加密信息的完整性(例如,使用兩個隨機密鑰並使用一個用於MACing。)最後,先購買一本好書。 – 2011-05-23 00:31:47

+0

嗨Darin Dimitrov&owlstead,謝謝你的回答和評論。對我有幫助。 – 2011-06-26 05:06:46

相關問題