PHP 暗号化: パスワード ハッシュ API

藏色散人
リリース: 2023-04-08 12:50:02
転載
4552 人が閲覧しました

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 の関連関数を使用して検証できます。

# パスワード: ユーザーのパスワード。

# algo: 暗号化アルゴリズムの定数。値は次のとおりです。

## ● PASSWORD_DEFAULT: bcrypt アルゴリズムを使用します。最終的に生成される結果は 60 文字を超える場合があります。

## ● PASSWORD_BCRYPT: CRYPT_BLOWFISH アルゴリズムを使用してハッシュを作成します。最終結果は 60 文字の文字列、または失敗した場合は FALSE になります。

# ソルト: ハッシュ化されたパスワードのソルト値を手動で指定します。省略した場合、関数はパスワード ハッシュごとにランダムなソルト値を自動的に生成します。この項目は PHP 7.0 で廃止されました;

# コスト: アルゴリズムによって使用されるコストを表します。デフォルト値は 10 ですが、実際の状況に応じて増やすことができます。

2,

password_verify(文字列パスワード, 文字列ハッシュ)

● パスワード: ユーザーが指定したパスワード。

# hash:password_hash() によって作成されたハッシュ値。一致する場合は TRUE を返し、一致しない場合は FALSE を返します。この機能ではタイミング攻撃は機能しません。

3、

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 サイトの他の関連記事を参照してください。

関連ラベル:
php
ソース:cnblogs.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート