2010-08-23 13 views
4

我想使用AES(192或256位),但我堅持如何從用戶提供的密碼生成密鑰。在java 5中使用AES進行基於密碼的加密(僅適用於JCE)

我已經through this thread,並且我能夠在Java 6。然而,我需要在Java 5中運行同一程序運行的程序,併爲SecretKeyFactory PBKDF2WithHmacSHA1不可用在JDK 5

所以,本質上,我需要根據用戶密碼爲SecretKey生成192或256位,並且我想要一個安全的方式在java 5中執行此操作。

幫助讚賞!爲了避免陷入困境,我現在使用MD5(用戶輸入的密碼+固定鹽)中的128位作爲AES的關鍵字。我知道它很糟糕,並且在我找出產生密鑰的好方法的時候會改變它。

+0

如果您發佈的代碼在Java6中有效,它可能會有所幫助。 – 2010-08-23 14:44:37

+0

@Jim - 查看此問題的接受答案 - http://stackoverflow.com/questions/992019/java-256bit-aes-encryption。該代碼在JDK6中非常完美,但我沒有想法讓它適用於JDK 5 – 2010-08-23 15:28:16

+0

因此,從更高版本的Java 1.5中獲取代碼並創建自己的API,或者使用Bouncy Castle也可以這樣做。不能那麼難。 – 2013-03-08 19:42:10

回答

-2

是否有你想要PBKDF2WithHmacSHA1的理由?

SecretKeyFactory存在於1.4.2中,因此您可能會看到here

+2

SecretKeyFactory存在於1.4.2中,但它沒有實現PBKDF2WithHmacSHA1算法。您粘貼的鏈接使用KeyFactory生成密鑰,這不適合我的目的。我需要使用某種密鑰分發函數從密碼生成密鑰 - 但我無法在JDK 5中找到一種好方法 – 2010-08-23 19:37:10

相關問題