查詢

password_needs_rehash()函式—用法及示例

「 檢查給定的雜湊是否需要重新計算,以適應當前密碼雜湊演算法的更改或引數的更改 」


函式名:password_needs_rehash()

適用版本:PHP 5 >= 5.5.0, PHP 7

函式描述:password_needs_rehash() 函式用於檢查給定的雜湊是否需要重新計算,以適應當前密碼雜湊演算法的更改或引數的更改。

用法: bool password_needs_rehash ( string $hash , int $algo [, array $options ] )

引數:

  • $hash:要檢查的密碼雜湊。
  • $algo:用於計算雜湊的密碼演算法的常量。可以使用 PASSWORD_DEFAULT 常量,也可以直接傳遞演算法的整數值,如 PASSWORD_BCRYPT。
  • $options(可選):一個關聯陣列,包含演算法的引數。例如,對於 PASSWORD_BCRYPT 演算法,可以透過設定 "cost" 選項來指定計算雜湊的計算成本。更多演算法特定的選項可以參考 PHP 手冊。

返回值:如果需要重新計算雜湊,則返回 true,否則返回 false。

示例:

$hash = '$2y$10$GZGK1b6d9sm2r3rBj6tG6e6d7XmEYv0k3S6Kq6YH4I6cZ4s5q6w5G';
$needsRehash = password_needs_rehash($hash, PASSWORD_DEFAULT);

if ($needsRehash) {
    // 重新計算雜湊並儲存新的雜湊值
    $newHash = password_hash('password123', PASSWORD_DEFAULT);
    // 更新資料庫中的密碼雜湊值
    // $newHash 儲存到資料庫中
} else {
    // 雜湊仍然是最新的,無需重新計算
    echo "密碼雜湊仍然是最新的。";
}

在上面的示例中,我們首先檢查給定的雜湊是否需要重新計算。如果需要重新計算,我們使用 password_hash() 函式生成一個新的雜湊,並將其儲存到資料庫中。如果雜湊仍然是最新的,我們只需輸出一條訊息。

補充糾錯
下一個函式: password_hash()函式
熱門PHP函式
分享連結