PBKDF2 金鑰派生 使用指南
口令 + salt(16位元組)+ 迭代 100000 + SHA256 → 固定長度金鑰;迭代越多越抗暴力。…
核心功能
- 從口令派生定長金鑰,支援 SHA-1 / SHA-256 / SHA-384 / SHA-512
- 可指定鹽值、迭代次數與輸出長度,引數影響抗爆破強度
- 輸出可選十六進位制、Base64 或二進位制字串
- 用於復算與驗證新舊實現的派生結果是否一致
適用場景
- 從口令派生加密金鑰,帶鹽與迭代次數。
- 給已有系統做口令雜湊遷移:按約定的鹽、迭代次數與輸出長度復算,確認與新實現結果一致後再切換。
使用步驟
- 輸入要派生的口令(不要填明文密碼以外的敏感資訊)
- 填鹽值:每個使用者應各不相同,且長度不低於 16 位元組
- 設迭代次數:口令雜湊場景建議不低於 600000 次(OWASP 量級),金鑰派生可低一些但別低於 10000
- 選擇輸出長度(位元組)與輸出格式
- 遷移舊系統時,用舊引數復算一遍並與庫裡的值比對,一致再切換新引數
實用技巧
- 同時每個口令必須用獨立隨機鹽,並把演算法引數與密文一起儲存以便將來升級
- 給已有系統做口令雜湊遷移:按約定的鹽、迭代次數與輸出長度復算,確認與新實現結果一致後再切換。
常見問題
- PBKDF2 與 bcrypt 怎麼選?
- 儲存口令二者皆可,PBKDF2 更通用,bcrypt 實現更簡單安全。
- 迭代次數設多少合適?
- 原則是「在可接受延遲內取最大值」:常取使單次計算耗時約 100–250 毫秒的數值,隨硬體提升逐年上調。OWASP 給出的參考量級是 PBKDF2-HMAC-SHA256 不少於 60 萬次(會隨時間調整)。同時每個口令必須用獨立隨機鹽,並把演算法引數與密文一起儲存以便將來升級。