password_hash() 関数は、ハッシュ値が指定されたオプションと一致するかどうかを確認するために使用されます。
PHP バージョン要件: PHP 5 >= 5.5.0、PHP 7
文法
bool password_needs_rehash ( string $hash , int $algo [, array $options ] )
パラメータの説明:
hash:password_hash() によって作成されたハッシュ値。
algo: パスワードをハッシュするときに使用されるアルゴリズムを示すために使用される暗号アルゴリズム定数。
options: オプションを含む連想配列。現在、パスワードのハッシュ化時に追加されるソルト (干渉文字列) であるソルトと、アルゴリズム再帰のレベル数を指定するために使用されるコストの 2 つのオプションがサポートされています。これら 2 つの値の例は、crypt() ページにあります。省略した場合、ランダムなソルト値とデフォルトのコストが使用されます。
戻り値
この関数は、指定されたハッシュ値が提供されたアルゴリズムとオプションを実装しているかどうかを検出します。 そうでない場合は、ハッシュ値を再生成する必要があります。
例
password_needs_rehash() の使用法
<?php $password = ' rasmuslerdorf ' ; $hash = ' $2y$10$YCFsG6elYca568hBi2pZ0.3LDL5wjgxct1N8w/oLR/jfHsiQwCqTS ' ; //ハードウェアのパフォーマンスが向上した場合、コスト パラメーターを変更できます。 $options = array ( ' cost ' => 11 ) ; //保存されたハッシュをクリア テキスト パスワードと照合して検証します。もし( password_verify ( $password , $hash ) ) { //利用可能な新しいハッシュ アルゴリズムがあるかどうかを確認します //またはコストの変更 もし( password_needs_rehash ( $hash 、 PASSWORD_DEFAULT 、 $options ) ) { //その場合、新しいハッシュを作成し、古いハッシュを置き換えます $newHash =パスワードハッシュ( $パスワード、 PASSWORD_DEFAULT 、 $オプション) } //ユーザーがログインできるようにする} ?>