PHP8 password_verify

2024-03-14 09:10 更新

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

password_verify — 驗證密碼是否和散列值匹配

說明

password_verify(string $password, string $hash): bool

驗證密碼是否和指定的散列值匹配。password_verify() 與 crypt() 兼容。因此,由 crypt() 創(chuàng)建的密碼散列可以用于 password_verify() 一起使用。

注意 password_hash() 返回的散列包含了算法、 cost 和鹽值。 因此,所有需要的信息都包含內。使得驗證函數(shù)不需要儲存額外鹽值等信息即可驗證散列。

時序攻擊(timing attacks)對此函數(shù)不起作用。

參數(shù) 

password

用戶的密碼。

hash

一個由 password_hash() 創(chuàng)建的散列值。

返回值 

如果密碼和散列值匹配則返回 true,否則返回 false。

示例 

示例 #1 password_verify() 示例

這只是簡單的示例,如果需要,建議重新生成正確的密碼;請參見 password_needs_rehash() 示例。

<?php
// 想知道以下字符從哪里來,可參見 password_hash() 示例
$hash = '$2y$10$.vGA1O9wmRjrwAVXD98HNOgsNpDczlqm3Jq7KnEd1rVAGv3Fykk1a';

if (password_verify('rasmuslerdorf', $hash)) {
    echo 'Password is valid!';
} else {
    echo 'Invalid password.';
}
?>

以上示例會輸出:

Password is valid!

參見 

  • password_needs_rehash() - 檢測散列值是否匹配指定的選項
  • password_hash() - 創(chuàng)建密碼的散列(hash)
  • 用戶級實現(xiàn)
  • sodium_crypto_pwhash_str_verify() - Verifies that a password matches a hash


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號