PHP 5.5 以降、ハッシュされたパスワードを作成および検証するためにパスワード ハッシュ API が導入されました。これはカーネルに付属しており、拡張機能のインストールや構成は必要ありません。これは、主に 4 つの使用関数を提供します:
## Password_hash(): パスワードのハッシュを作成します;## Password_verify(): パスワードがハッシュと一致するかどうかを確認します;
● passwd_needs_rehash(): 指定されたハッシュが指定されたオプションと一致するかどうかを確認します。
## ●password_get_info(): 指定されたハッシュに関する関連情報を返します。 1,password_hash(string password, int algo [, array options])
十分な強度の一方向ハッシュ アルゴリズムを使用してパスワードのハッシュを生成します。この関数は crypt() と互換性があります。つまり、crypt() によって生成されたハッシュ値は、パスワード ハッシュ API の関連関数を使用して検証できます。
## ● PASSWORD_DEFAULT: bcrypt アルゴリズムを使用します。最終的に生成される結果は 60 文字を超える場合があります。
## ● PASSWORD_BCRYPT: CRYPT_BLOWFISH アルゴリズムを使用してハッシュを作成します。最終結果は 60 文字の文字列、または失敗した場合は FALSE になります。 # ソルト: ハッシュ化されたパスワードのソルト値を手動で指定します。省略した場合、関数はパスワード ハッシュごとにランダムなソルト値を自動的に生成します。この項目は PHP 7.0 で廃止されました; # コスト: アルゴリズムによって使用されるコストを表します。デフォルト値は 10 ですが、実際の状況に応じて増やすことができます。 2,password_verify(文字列パスワード, 文字列ハッシュ)
● パスワード: ユーザーが指定したパスワード。# hash:password_hash() によって作成されたハッシュ値。一致する場合は TRUE を返し、一致しない場合は FALSE を返します。この機能ではタイミング攻撃は機能しません。
password_needs_rehash(string hash, integer algo [, array opitons])
● ハッシュ:password_hash() によって生成されたハッシュ; # ● algo: 暗号アルゴリズム定数、# options: 関連するオプションを含む連想配列。
4,
password_get_info(string hash) hash:password_hash() によって生成されたハッシュ。 3 つの要素を含む連想配列を返します:
## ● algo: パスワード アルゴリズム定数;## ● algoName: アルゴリズム名;
## ● options:password_hash() オプションを呼び出すときに提供されます。Example
$str = 'chicken,run!'; $pwd1 = password_hash($str, PASSWORD_BCRYPT); $pwd2 = crypt($str); var_dump(password_verify('chicken,run!', $pwd1)); // 输出 true var_dump(password_verify('chicken,ran!', $pwd1)); // 输出 false var_dump(password_verify($str, $pwd2)); // 输出 true var_dump(password_needs_rehash($pwd1, PASSWORD_BCRYPT, ['cost'=>10])); // 输出 false,因为 password_hash() 在加密时,出来默认 cost 为 10 外,还会指定随机的盐值その他のプログラミング関連コンテンツについては、php 中国語 Web サイトの
プログラミング入門
列に注目してください。以上がPHP 暗号化: パスワード ハッシュ APIの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。