password_verify
(PHP 5 >= 5.5.0, PHP 7, PHP 8)
password_verify — パスワードがハッシュにマッチするかどうかを調べる
説明
指定したハッシュがパスワードにマッチするかどうかを調べます。 password_verify() は crypt() と互換性があるので、 crypt() が作ったパスワードハッシュは password_verify() でも使えます。
password_hash() は、 アルゴリズムやコスト、ソルトといった情報もハッシュに含めて返すことに注意しましょう。 したがって、ハッシュの検証に必要な情報はすべてそこに含まれていることになります。 これで、検証関数がハッシュの検証をするときに、ソルトやアルゴリズム情報を別の場所から取得する必要がなくなります。
この関数は、タイミング攻撃に対して安全です。
パラメータ
password
-
ユーザーのパスワード。
hash
-
password_hash() が作ったハッシュ。
例
例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() - パスワードハッシュを作る
- » ユーザーランドでの実装
- sodium_crypto_pwhash_str_verify() - パスワードが、ハッシュ値と一致するかを調べる
+add a note
User Contributed Notes
There are no user contributed notes for this page.
↑ and ↓ to navigate •
Enter to select •
Esc to close
Press Enter without
selection to search using Google