什麼是 scrypt?
scrypt 是一種記憶體困難型、基於密碼的金鑰派生函式(KDF)。它會將密碼和鹽轉換成決定性的金鑰位元組,同時刻意消耗 CPU 時間與記憶體,讓大規模密碼猜測比單純雜湊更昂貴。
要點:
- 使用
N(成本因子)、r(區塊大小)與p(平行度) - 較高的
N和r設定會增加記憶體與計算成本 - 只有密碼、鹽、參數與輸出長度都相符時,才會產生相同的派生金鑰
最佳實務:
- 為每個密碼或秘密使用唯一的隨機鹽
- 將
N、r、p、鹽格式與輸出長度和派生金鑰存放在一起 - 在投入正式環境前,先以需要支援的最慢裝置調校參數