hash_init
段階的なハッシュコンテキストを初期化する
説明
HashContext hash_init(
string $algo
,
int $flags
= 0,
#[\SensitiveParameter]string $key
= "",
array $options
= []
)
パラメータ
-
algo
-
選択したアルゴリズムの名前 (例: "sha256"
)。
サポートされているアルゴリズムの一覧については、hash_algos を参照ください。
注意:
HASH_HMAC
フラグが指定されている場合、
暗号に適さないハッシュ関数は許可されません。
-
flags
-
ハッシュ生成の際に使用するオプションで、現在は、ただひとつ
HASH_HMAC
のみをサポートしています。これが
指定された場合、key
を
必ず指定しなければなりません。
-
key
-
flags
に HASH_HMAC
が指定された場合に、HMAC 形式のハッシュで使用される共有の秘密鍵を
設定する必要があります。
-
options
-
様々なハッシュアルゴリズム向けの、オプションの配列。
現状は、MurmurHash バリアントが "seed"
だけをサポートしています。
戻り値
hash_update、
hash_update_stream、hash_update_file
および hash_final で使用するハッシュコンテキストを
返します。
エラー / 例外
algo
が不明な場合や、
暗号に適さないハッシュ関数の場合、
または key
が空の場合に
ValueError がスローされます。
例
例1 段階的なハッシュの例
<?php
$hash = hash('sha256', 'The quick brown fox jumped over the lazy dog.');
$ctx = hash_init('sha256');
hash_update($ctx, 'The quick brown fox ');
hash_update($ctx, 'jumped over the lazy dog.');
$incremental_hash = hash_final($ctx);
echo $incremental_hash, PHP_EOL;
var_dump($hash === $incremental_hash);
?>
68b1282b91de2c054c36629cb8dd447f12f096d3e3c587978dc2248444633483
bool(true)
参考
- hash_algos
- hash_update
- hash_update_file
- hash_update_stream
- hash_final