Hash_update_streamは、ハッシュ計算の更新に使用されるPHPの関数です。これにより、データをストリームから読み取り、ハッシュ値を更新できます。大量のデータを処理する場合、ストリームを使用すると、メモリオーバーフローの問題を効果的に回避できますが、 hash_update_streamはさまざまなハッシュアルゴリズムのサポートを提供します。
PHPでは、 hash_update_streamを使用して、初期化されたハッシュコンテキストにデータを追加します。その基本的な構文は次のとおりです。
bool hash_update_stream ( resource $context , resource $stream [, int $length = 0 ] )
$コンテキストは、 hash_initを介して作成されたハッシュコンテキストリソースです。
$ Streamはオープンストリームリソースです。
$の長さはオプションで、読み取りストリームのバイト長を示します。省略した場合、ストリーム内の利用可能なデータはすべてデフォルトで読み取られます。
PHPのHASH_UPDATE_STREAM関数は、 HASH関数と組み合わせて使用され、複数のハッシュアルゴリズムをサポートします。具体的には、 hash_update_streamは、 hash_init関数によって初期化される次のハッシュアルゴリズムを使用できます。
MD5 ( MD5 )
SHA-1 ( SHA1 )
SHA-224 ( SHA224 )
SHA-256 ( SHA256 )
SHA-384 ( SHA384 )
SHA-512 ( SHA512 )
ripemd-160 ( ripemd160 )
ワールプール(渦)
タイガー(タイガー)
Snefru ( Snefru )
GOST ( GOST )
CRC32 ( CRC32 )
CRC32B ( CRC32B )
Hash_update_streamを使用してHashを使用する方法を示す簡単な例を次に示します。
<?php
// ファイルストリームを開きます
$stream = fopen('data.txt', 'rb');
// ハッシュコンテキストを初期化します,選ぶSHA-256アルゴリズム
$context = hash_init('sha256');
// 使用hash_update_streamハッシュ値を更新します
hash_update_stream($context, $stream);
// 最終的なハッシュ値を取得します
$hash = hash_final($context);
// 出力結果
echo "提出SHA-256ハッシュ値はです: " . $hash;
// ストリームを閉じます
fclose($stream);
?>
この例では、HashingアルゴリズムとしてSHA256を選択しました。他のアルゴリズムを使用する必要がある場合は、 Hash_initで対応するアルゴリズム名を渡すだけです。
hash_update_stream関数は、さまざまなハッシュアルゴリズムをサポートします。これにより、大規模なファイルやストリーミングデータを処理するときにPHPが非常に柔軟になります。適切なハッシュアルゴリズムを選択すると、特定のニーズに基づいてパフォーマンスとセキュリティの最良のバランスを見つけることができます。この関数を使用する場合、必要なアルゴリズムに従って初期化し、ストリームを使用してハッシュ値を徐々に更新し、最後にファイルまたはデータストリームのハッシュダイジェストを取得します。