2013-01-21 104 views
-6

我可以用 「PBKDF2WithHmacSHA1」 算法 「DES」 加密。加密: 「DES」 與 「PBKDF2WithHmacSHA1」

+0

嘗試一下,看看會發生什麼。 –

+0

你可以,但它肯定不安全。 – CodesInChaos

+0

@RenatoLochetti好像你是幾乎在智能,它的一個問題是顯而易見的,所以我想如果可以的話你更專注於解決方案... –

回答

0

您可能正在使用PBKDF2WithHmacSHA1生成128位或更多的密鑰,由於它使用56位密鑰,因此無法與DES一起使用。

我不知道你想生成的關鍵是什麼語言,但應該有指定密鑰長度的參數。確保它指定輸出一個56位密鑰。

爲DES的56位密鑰長度也是爲什麼你不應該使用DES。你的鑰匙將在一天之內被強姦。使用AES。

+0

我可以使用看到以下'SecretKeyFactory factory = SecretKeyFactory \t \t \t \t .getInstance(「PBKDF2WithHmacSHA1」); \t \t \t \t \t \t KeySpec規格=新PBEKeySpec(passPhrase.toCharArray(),鹽, \t \t \t \t ITERATION_COUNT,KEY_LENGTH); \t \t \t \t \t \t SecretKey的TMP = factory.generateSecret(SPEC); \t \t SecretKey的祕密=新SecretKeySpec(tmp.getEncoded(), 「DES」); \t \t ecipher = Cipher.getInstance( 「DES/CBC/PKCS5Padding」); \t \t \t \t ecipher.init(Cipher.ENCRYPT_MODE,祕密)' –

+0

請確保'KEY_LENGTH'等於56 –

+0

這是我有現在看到,當我把'KEY_LENGTH'到56的混亂它給我的錯誤'密鑰長度無效'不知道爲什麼? **根據「DES」規格「KEY_LENGTH」必須是56長度**和用於'KEY_LENGTH = 64;'它的正常工作。 _also恐怕在發佈新question.each時間,我在這裏,你們都反對投票我張貼任何問題的。 HEHEHEHHAHA)_ –