以下常數始終作為 PHP 核心的一部分提供。
PASSWORD_BCRYPT
(字串)
PASSWORD_BCRYPT
用於使用 CRYPT_BLOWFISH
演算法建立新的密碼雜湊。
這將始終產生使用「$2y$」crypt 格式的雜湊,該格式始終為 60 個字元寬。
支援的選項
salt
(字串) - 手動提供用於雜湊密碼的鹽值。請注意,這將覆蓋並防止自動產生鹽值。
如果省略,password_hash() 將為每個雜湊的密碼產生隨機鹽值。這是預期的操作模式,並且從 PHP 7.0.0 開始,salt 選項已被棄用。
cost
(整數) - 表示應使用的演算法成本。這些值的範例可以在 crypt() 頁面上找到。
如果省略,將使用預設值 10
。這是一個良好的基準成本,但您可能需要根據您的硬體考慮增加它。
PASSWORD_BCRYPT_DEFAULT_COST
(整數)
PASSWORD_ARGON2I
(字串)
PASSWORD_ARGON2I
用於使用 Argon2i 演算法建立新的密碼雜湊值。
支援的選項
memory_cost
(整數) - 可用於計算 Argon2 雜湊的最大記憶體(以 KiB 為單位)。預設為 PASSWORD_ARGON2_DEFAULT_MEMORY_COST
。
time_cost
(整數) - 計算 Argon2 雜湊值可能需要的最長時間。預設為 PASSWORD_ARGON2_DEFAULT_TIME_COST
。
threads
(整數) - 用於計算 Argon2 雜湊的執行緒數。預設為 PASSWORD_ARGON2_DEFAULT_THREADS
。僅適用於 libargon2,不適用於 libsodium 實作。
自 PHP 7.2.0 起可用。
PASSWORD_ARGON2ID
(字串)
PASSWORD_ARGON2ID
用於使用 Argon2id 演算法建立新的密碼雜湊值。它支援與 PASSWORD_ARGON2I
相同的選項。
自 PHP 7.3.0 起可用。
PASSWORD_ARGON2_DEFAULT_MEMORY_COST
(整數)嘗試計算雜湊時將使用的預設記憶體量(以位元組為單位)。
自 PHP 7.2.0 起可用。
PASSWORD_ARGON2_DEFAULT_TIME_COST
(整數)嘗試計算雜湊時將花費的預設時間量。
自 PHP 7.2.0 起可用。
PASSWORD_ARGON2_DEFAULT_THREADS
(整數)Argon2lib 將使用的預設執行緒數。libsodium 實作不提供此選項。
自 PHP 7.2.0 起可用。
PASSWORD_ARGON2_PROVIDER
(字串)
自 PHP 7.4.0 起可用。
PASSWORD_DEFAULT
(字串)如果未提供演算法,則用於雜湊的預設演算法。當支援更新、更強的雜湊演算法時,這可能會在較新的 PHP 版本中更改。
值得注意的是,隨著時間推移,這個常數可能會改變。因此務必了解,結果雜湊的長度也可能改變。所以,當使用 PASSWORD_DEFAULT
時,產生的雜湊必須以能夠儲存任意長度雜湊的方式儲存,建議的寬度是 255
位元組。
PASSWORD_BCRYPT
的別名。
版本 | 說明 |
---|---|
7.4.0 | 密碼演算法 ID 的值(PASSWORD_BCRYPT 、PASSWORD_ARGON2I 、PASSWORD_ARGON2ID 和 PASSWORD_DEFAULT )現在是字串。之前,它們是整數。 |