我可以使用什麼算法在Java中創建加密程序?如果我想使用相同的密鑰進行加密和解密,該怎麼辦?我可以在Java中使用什麼算法進行加密?
例如:我輸入Hello world
並使用密鑰guy
,所以單詞改成[email protected]
。如果我想解密它,我必須使用相同的密鑰(guy
),因此它將再次變爲hello world
。
我可以使用什麼算法在Java中創建加密程序?如果我想使用相同的密鑰進行加密和解密,該怎麼辦?我可以在Java中使用什麼算法進行加密?
例如:我輸入Hello world
並使用密鑰guy
,所以單詞改成[email protected]
。如果我想解密它,我必須使用相同的密鑰(guy
),因此它將再次變爲hello world
。
你可以使用你想要的任何算法,如果你願意實現它。如果你問算法Java提供的cryptography extension優惠(從this list):
我相信所有這些都是對稱(加密和解密密鑰是相同的),除了RSA
該鏈接是針對Java 1.4文檔的。我沒有環顧四周,但是您可能想要註釋該鏈接或鏈接到該文檔的更新版本。 – 2010-08-23 16:46:20
@Thomas我在查找新文檔時遇到了問題,但我在答案中添加了一個註釋 – 2010-08-23 16:49:35
您可能想檢查一下以驗證,但是http://download.oracle.com/javase/6/docs/technotes /guides/security/crypto/CryptoSpec.html似乎是您鏈接到的Java 6版本。 – 2010-08-23 17:01:47
你可以使用任何symmetric key algorithm
我將堅持行業標準 - 三重DES(3DES)或AES,因此3DES是緩慢被AES取代。各種語言的庫和源代碼均可用,並經過測試和驗證。
我會使用隨機生成的密鑰進行數據加密,並使用基於公鑰/私鑰對的非對稱方法(RSA)分發這些密鑰。
爲了幫助您在Google上搜索時,您所描述的內容通常稱爲「對稱密鑰加密」。 – 2010-08-23 16:44:05
我認爲這個問題很有趣,因爲這個問題在Java上放置了一個TM,但是沒有將商標的名稱大寫爲實際應用所需的名稱。 – 2010-08-23 16:47:53
抱歉oneal,我沒有意識到這一點:D – WenZ 2010-08-23 17:06:11