(PHP 5 >= 5.5.0)
hash_pbkdf2 — PBKDF2 を使ってパスワードからキーを生成する
$algo
, string $password
, string $salt
, int $iterations
[, int $length
= 0
[, bool $raw_output
= false
]] )
algo
ハッシュアルゴリズムの名前 (たとえば md5, sha256, haval160,4 など)。サポートされるアルゴリズムの一覧は hash_algos() をご参照ください。
password
派生に使うパスワード
salt
派生に使うソルト
iterations
派生の実行の際の内部の反復回数
length
出力する派生キーの長さ。0 の場合、渡されたアルゴリズムの長さが使われます。
raw_output
TRUE
にセットされている場合、名前のバイナリデータが出力されます。FALSE
の場合、小文字の16進数が出力されます。
小文字の16進数を含む文字列が返されます。raw_output
が true の場合、派生キーの生のバイナリ表現が返されます。
E_WARNING
が発生するのはアルゴリズムが未知である場合、iterations
パラメータが 0 以下である場合、length
が 0 以下である場合、salt
が長すぎる場合
(INT_MAX
- 4 よりも大きい) です。
例1 hash_pbkdf2() の基本的な使い方の例
<?php
$password = "password";
$salt = "salt";
$hash = hash_pbkdf2("sha256", $password, $salt, 1, 20);
echo $hash;
?>
上の例の出力は以下となります。
120fb6cffcf8b32c43e7
PBKDF2 による方法はパスワードのハッシュを保存するために使うことができます (NIST が認めた利用方法です)。
しかしながら、CRYPT_BLOWFISH
のほうがパスワードの保存に適しており、 crypt() を通じて利用できることを記しておきます。