password_verify
(PHP 5 >= 5.5.0, PHP 7)
password_verify — パスワードがハッシュにマッチするかどうかを調べる
説明
password_verify
( string $password
, string $hash
) : bool
指定したハッシュがパスワードにマッチするかどうかを調べます。
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!
参考
- password_hash() - パスワードハッシュを作る
- » ユーザーランドでの実装
- sodium_crypto_pwhash_str_verify() - Verifies that a password matches a hash