的$ key_length它說,它將從輸入中得到,但我看到使用的256和更大的key_lengths的人,但是當我輸入256作爲key_length輸出512個字符。這是故意的嗎?我可以安全地使用64作爲key_length,因此輸出長度爲128個字符?
1
A
回答
3
$ key_length是您希望從PBKDF2獲得的輸出字節數。 (請注意,如果key_length大於散列算法的輸出字節數,則會重複該過程兩次,這樣散列速度可能會超出您的期望值,例如,SHA256會提供32個字節的輸出,因此要求輸入33個字節大約需要32倍的長度。)
您提到的長度加倍是因爲代碼將輸出字節轉換爲十六進制(即每個字節2個字符),除非指定$ raw_output = true。測試向量包括指定$ raw_output = false,因爲十六進制更容易處理並在線發佈。根據您在應用程序中存儲數據的方式,您可以決定是將結果存儲爲十六進制,base64還是僅存儲原始二進制數據。
3
在鍵長度被定義爲 的Password-Based Cryptography Specification Version 2.0 IETF規範「中導出密鑰,一個正整數的八比特組預期長度,至多 (2^32 - 1)*爲hLen」在這裏hLen表示長度僞隨機函數輸出的八位組。有關pbkdf2的更多詳細信息,請參閱How to store passwords securely with PBKDF2
相關問題
- 1. RijndaelManaged密鑰長度是否與AES [密鑰長度]相同?
- 2. PBKDF2 - 使用SHA512生成1024位密鑰長度時會發生什麼?
- 3. Visa RSA密鑰長度
- 4. 計數密鑰長度php
- 5. 找到密鑰長度
- 6. InnoDB最大密鑰長度
- 7. 在android中的PBKDF2安全密鑰
- 8. PBKDF2推薦的密鑰大小?
- 9. java.security AES加密密鑰長度
- 10. iPhone 3DES加密密鑰長度問題
- 11. 表示祕密密鑰長度
- 12. TLS 1.2 - 密鑰對大小和加密密鑰長度
- 13. 如何使用java查找SSH RSA密鑰的密鑰長度
- 14. 指定的密鑰太長;最大密鑰長度爲1000字節
- 15. UNIQUE INDEX - 指定的密鑰太長;最大密鑰長度是767字節
- 16. 「指定的密鑰太長;最大密鑰長度爲1000字節」
- 17. 指定的密鑰太長;最大密鑰長度是767字節
- 18. #1071 - 指定的密鑰太長;最大密鑰長度爲1000字節
- 19. 指定的密鑰太長;最大密鑰長度爲1000字節
- 20. 如何更改ECDSA的密鑰長度?
- 21. 密鑰長度不是128/192/256位
- 22. 無法確定DKIM密鑰長度
- 23. hmac密鑰和鹽的長度
- 24. 提取公共密鑰長度
- 25. RSA的最小密鑰長度
- 26. 最小證書密鑰長度和WinXP
- 27. 如何基於密鑰的長度
- 28. Nodejs 6.10.2 crypto AES密鑰長度無效
- 29. AES和密鑰長度錯誤
- 30. 排序字典的密鑰長度