2010-08-23 61 views
0

我可以使用什麼算法在Java中創建加密程序?如果我想使用相同的密鑰進行加密和解密,該怎麼辦?我可以在Java中使用什麼算法進行加密?

例如:我輸入Hello world並使用密鑰guy,所以單詞改成[email protected]。如果我想解密它,我必須使用相同的密鑰(guy),因此它將再次變爲hello world

+2

爲了幫助您在Google上搜索時,您所描述的內容通常稱爲「對稱密鑰加密」。 – 2010-08-23 16:44:05

+1

我認爲這個問題很有趣,因爲這個問題在Java上放置了一個TM,但是沒有將商標的名稱大寫爲實際應用所需的名稱。 – 2010-08-23 16:47:53

+0

抱歉oneal,我沒有意識到這一點:D – WenZ 2010-08-23 17:06:11

回答

3

您可以使用AES

+0

感謝您的答覆Dimitrov,我會用它來搜索AES ... – WenZ 2010-08-23 16:43:23

+0

@WenZ,嘗試我已發佈的鏈接。它包含一個樣本。 – 2010-08-23 16:44:08

3

可以使用你想要的任何算法,如果你願意實現它。如果你問算法Java提供的cryptography extension優惠(從this list):

  • AES
  • 河豚
  • DES
  • DESede
  • RC2,RC4,RC5
  • RSA

我相信所有這些都是對稱(加密和解密密鑰是相同的),除了RSA

+0

該鏈接是針對Java 1.4文檔的。我沒有環顧四周,但是您可能想要註釋該鏈接或鏈接到該文檔的更新版本。 – 2010-08-23 16:46:20

+0

@Thomas我在查找新文檔時遇到了問題,但我在答案中添加了一個註釋 – 2010-08-23 16:49:35

+1

您可能想檢查一下以驗證,但是http://download.oracle.com/javase/6/docs/technotes /guides/security/crypto/CryptoSpec.html似乎是您鏈接到的Java 6版本。 – 2010-08-23 17:01:47

1

我將堅持行業標準 - 三重DES(3DES)或AES,因此3DES是緩慢被AES取代。各種語言的庫和源代碼均可用,並經過測試和驗證。

我會使用隨機生成的密鑰進行數據加密,並使用基於公鑰/私鑰對的非對稱方法(RSA)分發這些密鑰。

相關問題