以下常數始終作為 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)現在是字串。之前,它們是整數。 |