関数・クラス解説
hash_pbkdf2
version:PHP 5 >= 5.5.0, PHP 7 (公式)PBKDF2 を使ってパスワードからキーを生成する
公式リファレンス
書式
hash_pbkdf2 ( string $algo , string $password , string $salt , int $iterations [, int $length = 0 [, bool $raw_output = FALSE ]] ) : string
パラメータ
- algo
- ハッシュアルゴリズムの名前 (たとえば md5, sha256, haval160,4 など)。サポートされるアルゴリズムの一覧は hash_algos() をご参照ください。
- password
- 派生に使うパスワード
- salt
- 派生に使うソルト。ランダムに生成した値でなければいけません。
- iterations
- 派生の実行の際の内部の反復回数
- length
- 出力する文字列の長さ。raw_output が TRUE の場合、これは派生キーのバイト長になります。 raw_output が FALSE の場合、 これは派生キーのバイト長の二倍になります (キーの全バイトが十六進二桁で返されるからです)。
- raw_output
- TRUE にセットされている場合、名前のバイナリデータが出力されます。FALSE の場合、小文字の16進数が出力されます。
返値
小文字の16進数を含む文字列が返されます。raw_output が TRUE の場合、派生キーの生のバイナリ表現が返されます。
エラー
E_WARNING が発生するのはアルゴリズムが未知である場合、iterations パラメータが 0 以下である場合、length が 0 以下である場合、salt が長すぎる場合 (INT_MAX - 4 よりも大きい) です。
注意
警告 PBKDF2 による方法はパスワードのハッシュを保存するために使うことができます。 しかし、password_hash() や crypt() で CRYPT_BLOWFISH を使うのほうが、パスワードの保存に適しています。
更新履歴
バージョン | 説明 |
---|---|
7.2.0 | 暗号の使用に適さないハッシュ関数 (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) は使えなくなりました。 |
サンプル
例1 hash_pbkdf2() の基本的な使い方の例
$password = "password";
$iterations = 1000;
// ランダムな IV を、openssl_random_pseudo_bytes() や
// random_bytes() などの適切なソースを使って生成します。
$salt = openssl_random_pseudo_bytes(16);
$hash = hash_pbkdf2("sha256", $password, $salt, $iterations, 20);
echo $hash;
上の例の出力は、たとえば以下のようになります。
120fb6cffcf8b32c43e7
参考
ワード検索
※入力キーワードが、関数名・説明文・タグに含まれるものを検索関数名アルファベット別
最終更新一覧
●stristr
大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却
●stripslashes
バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く
●stripos
大文字小文字を区別せずに文字列が最初に現れる位置を取得する
●stripcslashes
addcslashes() でクォートされた文字列をアンクォートする
●strip_tags
文字列から HTML と PHP のタグを除去して返却
●strcspn
指定した文字が最初に現れる位置を調べる
●strcoll
ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する
●strcmp
2つの文字列を比較し同じか(あるいは大小)を判定する
●strchr
strstr() のエイリアス
●strcasecmp
2つの文字列を比較(大文字小文字を区別せず同じとみなす)
カテゴリー一覧
PHP の振る舞いの変更
音声フォーマットの操作
認証サービス
コマンドライン関連
圧縮およびアーカイブ
暗号
データベース関連
日付および時刻関連
ファイルシステム
自然言語および文字エンコーディング
画像処理および作成
メール関連
数学
テキスト以外の MIME 型
プロセス制御
その他の基本モジュール
その他のサービス
検索エンジン用の拡張モジュール
サーバー固有のモジュール
セッション関連
テキスト処理
変数・データ型関連
ウェブサービス
Windows 用のモジュール
XML 操作
GUI用の拡張モジュール