PHP8 密碼散列算法 預(yù)定義常量

2024-03-13 11:25 更新

下列常量作為 PHP 核心的一部分總是可用的。

PASSWORD_BCRYPT (字符串)

PASSWORD_BCRYPT用于創(chuàng)建新密碼 使用 CRYPT_BLOWFISH 算法的哈希值。

這將始終導(dǎo)致使用“$2y$”加密格式的哈希值, 它始終為 60 個字符寬。

支持的選項:

  • salt (字符串)- 手動提供在散列密碼時使用的鹽。 請注意,這將覆蓋并阻止自動生成鹽。

    如果省略,則 password_hash() 將生成一個隨機鹽 每個密碼都經(jīng)過哈希處理。這是預(yù)期的操作模式 從 PHP 7.0.0 開始,salt 選項已被棄用。

  • cost (整數(shù))- 表示算法成本 應(yīng)該使用。這些值的示例可以在 crypt() 頁面上找到。

    如果省略,則將使用默認值 。這是一個很好的 基準(zhǔn)成本,但您可能需要考慮根據(jù)硬件增加基準(zhǔn)成本。10

PASSWORD_BCRYPT_DEFAULT_COST (int)
PASSWORD_ARGON2I (字符串)

PASSWORD_ARGON2I用于創(chuàng)建新密碼 使用 Argon2i 算法的哈希值。

支持的選項:

  • memory_cost (整數(shù))- 最大內(nèi)存(以千字節(jié)為單位),可能 用于計算 Argon2 哈希值。默認為 PASSWORD_ARGON2_DEFAULT_MEMORY_COST。

  • time_cost (整數(shù))- 可能的最長時間 take 來計算 Argon2 哈希值。默認為 PASSWORD_ARGON2_DEFAULT_TIME_COST。

  • threads (整數(shù))- 用于計算的線程數(shù) Argon2 哈希值。默認為 PASSWORD_ARGON2_DEFAULT_THREADS。 僅適用于 libargon2,不適用于 libsodium 實現(xiàn)。

從 PHP 7.2.0 開始可用。

PASSWORD_ARGON2ID (字符串)

PASSWORD_ARGON2ID用于創(chuàng)建新密碼 使用 Argon2id 算法的哈希值。它支持與PASSWORD_ARGON2I相同的選項。

從 PHP 7.3.0 開始可用。

PASSWORD_ARGON2_DEFAULT_MEMORY_COST (int)

嘗試時將使用的默認內(nèi)存量(以字節(jié)為單位) 計算哈希值。

從 PHP 7.2.0 開始可用。

PASSWORD_ARGON2_DEFAULT_TIME_COST (int)

嘗試計算哈希所花費的默認時間。

從 PHP 7.2.0 開始可用。

PASSWORD_ARGON2_DEFAULT_THREADS (int)

Argon2lib 將使用的默認線程數(shù)。 不適用于 libsodium 實現(xiàn)。

從 PHP 7.2.0 開始可用。

PASSWORD_ARGON2_PROVIDER (字符串)

從 PHP 7.4.0 開始可用。

PASSWORD_DEFAULT(混合))

如果未提供算法,則用于哈希的默認算法。 在較新的 PHP 版本中,當(dāng)更新、更強的哈希時,這可能會發(fā)生變化 支持算法。

值得注意的是,隨著時間的流逝,這個常數(shù)可以(并且很可能會) 改變。因此,您應(yīng)該知道,結(jié)果的長度 哈??梢愿摹R虼?,如果使用 PASSWORD_DEFAULT則應(yīng)以可以存儲 60 個以上的方式存儲生成的哈希值 字符(建議寬度為 255)。

此常量的值:

  • PHP 5.5.0 - PASSWORD_BCRYPT
更新日志
版本說明
7.4.0密碼算法 ID(PASSWORD_BCRYPT、PASSWORD_ARGON2I、PASSWORD_ARGON2ID 和 PASSWORD_DEFAULT)的值現(xiàn)在是字符串s。 以前,它們一直是 ints。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號