PHP 5.5 hashes を作成および検証する最も簡単な方法の詳細な説明_PHP チュートリアル

WBOY
リリース: 2016-07-13 10:25:26
オリジナル
873 人が閲覧しました

まず、password_hash() 関数について説明します。これは、新しいパスワードを作成するためのハッシュとして使用されます。これには、パスワード、ハッシュ アルゴリズム、オプションの 3 つのパラメータが含まれます。最初の 2 つの項目は必須です。この関数は、次の例に従って使用できます:

コードをコピーします コードは次のとおりです:

$password = 'foo';
$hash = password_hash($password,PASSWORD_BCRYPT);
/ /$2y$10 $uOegXJ09qznQsKvPfxr61uWjpJBxVDH2KGJQVnodzjnglhs2WTwHu

このハッシュにはオプションを追加していないことがわかります。利用可能なオプションは現在、コストとソルトの 2 つに制限されています。オプションを追加するには、連想配列を作成する必要があります。
コードをコピーします コードは次のとおりです:
$options = [ 'cost' => 10,
'salt' => mcrypt_create_iv(22, MCRYPT_DEV_URANDOM) ]; ) 関数を使用すると、ハッシュ値が変更され、より安全になります。


コードをコピーします
コードは次のとおりです:$hash = password_hash($password,PASSWORD_BCRYPT,$options);//$2y$10$JDJ5JDEwJDhsTHV6SGVIQuprRHZnGQsUEtlk8Iem0okH 6HPyCoo22

ハッシュが作成されたので、 password_get_info () を渡すことができます。新しく作成されたハッシュ値に関連する情報を表示します。 password_get_info() は 1 つの引数 (ハッシュ値) を取り、アルゴリズム (使用されるハッシュ アルゴリズムの整数表現)、アルゴリズム名 (使用されるハッシュ アルゴリズムの人間が判読できる名前)、および使用したオプションを含むパラメーターを返します。値オプションのハッシュ連想配列を作成します)。


コードをコピー
コードは次のとおりです:var_dump(password_get_info($hash));/*
array(3) {
["algo"]=>
int(1)
["algoName "]=>
string(6) "bcrypt"
["options"]=>
array(1) {
["cost"]=>
int(10)
}
}
*/


パスワード ハッシュ API に最初に追加されるのは、password_needs_rehash() です。これは、ハッシュ、ハッシュ アルゴリズム、およびオプションの 3 つのパラメータを受け取ります。最初の 2 つは必須です。 passwd_needs_rehash() は、ハッシュ値が特定のアルゴリズムとオプションを使用して作成されたかどうかを確認するために使用されます。これは、データベースが破損しており、ハッシュを調整する必要がある場合に役立ちます。各ハッシュ値をpassword_needs_rehash()でチェックすることで、既存のハッシュ値が新しいパラメータと一致するかどうかを確認でき、古いパラメータで作成された値のみが影響を受けます。
最後に、ハッシュを作成し、その作成方法を調べ、再ハッシュする必要があるかどうかを確認しました。次に、それを検証する必要があります。プレーン テキストをハッシュ値と照合するには、password_verify() を使用する必要があります。これは、パスワードとハッシュ値の 2 つのパラメータを受け取り、TRUE または FALSE を返します。取得したハッシュが正しいかどうかを確認してみましょう。


コードをコピーします
コードは次のとおりです:$authenticate =password_verify('foo','$2y$10$JDJ5JDEwJDhsTHV6SGVIQuprRHZnGQsUEtlk8Iem0okH6HPyCoo22');//TRU E
$ 認証 = パスワード_検証('バー', '$2y$10 $JDJ5JDEwJDhsTHV6SGVIQuprRHZnGQsUEtlk8Iem0okH6HPyCoo22');
//FALSE




http://www.bkjia.com/PHPjc/825081.html

www.bkjia.com

http://www.bkjia.com/PHPjc/825081.html技術記事まず、password_hash() 関数について説明します。これは、新しいパスワードを作成するためのハッシュとして使用されます。これには、パスワード、ハッシュ アルゴリズム、オプションの 3 つのパラメータが含まれます。最初の 2 つの項目は必須です。あなたはできます...
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!