password_verify

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

password_verifyパスワードがハッシュにマッチするかどうかを調べる

説明

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

指定したハッシュがパスワードにマッチするかどうかを調べます。 password_verify()crypt() と互換性があるので、 crypt() が作ったパスワードハッシュは password_verify() でも使えます。

password_hash() は、 アルゴリズムやコスト、ソルトといった情報もハッシュに含めて返すことに注意しましょう。 したがって、ハッシュの検証に必要な情報はすべてそこに含まれていることになります。 これで、検証関数がハッシュの検証をするときに、ソルトやアルゴリズム情報を別の場所から取得する必要がなくなります。

この関数は、タイミング攻撃に対して安全です。

パラメータ

password

ユーザーのパスワード。

hash

password_hash() が作ったハッシュ。

戻り値

パスワードとハッシュがマッチする場合に true、それ以外の場合に false を返します。

例1 password_verify() の例

<?php
// これをどうやって作ったのかは、password_hash() の例を参照ください
$hash '$2y$07$BCryptRequires22Chrcte/VlQH0piJtjXl.0t1XkA8pw9dMXTpOq';

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

上の例の出力は以下となります。

Password is valid!

参考

関連キーワード:  ハッシュ, パスワード, マッチ, verify, hash, 検証, 情報, 関数, string, Password