PHPでは、ハッシュアルゴリズムは、ファイルコンテンツや文字列などの任意の長さのデータを固定長文字列に変換する手法です。一般的なハッシュアルゴリズムには、MD5、SHA-1、SHA-256などが含まれます。ファイルを処理する場合、ファイルのハッシュ値を計算すると、ファイルの整合性を確認し、ファイルが改ざんされないようにします。
PHPでは、 hash_final関数を使用して、ファイルのハッシュ値を計算できます。以下に、 hash_final関数を使用してファイルのハッシュ値を計算し、特定のコードの例を使用して理解する方法を紹介します。
HASH_FINAL関数は、ハッシュ計算を完了するために使用されるPHPの関数の1つです。通常、 hash_initおよびhash_updateと組み合わせて使用されます。大規模なデータ(ファイルなど)を処理する場合、コンピューティングハッシュ値がチャンクできます。
string hash_final ( resource $context [, bool $raw_output = false ] )
$コンテキスト:これは、現在のハッシュ計算のステータスを保存するために使用されるHASH_INIT関数によって初期化されたリソースです。
$ raw_output : trueの場合、ハッシュ値をバイナリ形式で返します。 falseの場合、16進数形式でハッシュ値を返します(デフォルト値はfalse )。
Hash_Final関数を使用してファイルのハッシュ値を計算する方法を示す簡単な例を以下に示します。
HASH_INIT関数を使用して、HASH計算コンテキストを初期化します。
hash_update関数を使用して、チャンクのファイルを読み取り、ハッシュコンテキストを更新します。
hash_final関数を使用して、最終的なハッシュ値を取得します。
<?php
// ファイルパス
$file = 'path/to/your/file.txt';
// ハッシュ計算を初期化します,ハッシュアルゴリズムを選択します(のように md5, sha256 待って)
$context = hash_init('sha256');
// ファイルを開いて読んでください
$handle = fopen($file, 'rb');
if ($handle) {
// それぞれ読みます 8192 バイト
while (!feof($handle)) {
// ファイルコンテンツを読み取ります
$data = fread($handle, 8192);
// ハッシュ値を更新します
hash_update($context, $data);
}
fclose($handle);
} else {
echo "ファイルを開くことができません!";
exit;
}
// ファイルのハッシュ値を計算します
$hash = hash_final($context);
// 出力ハッシュ値
echo "ファイルのハッシュ値はです: " . $hash;
?>
まず、 HASH_INIT関数を呼び出して、ハッシュ計算を初期化します。 HashingアルゴリズムとしてSHA256を選択し、 MD5 、 SHA1などの他の方法も使用できます。
FOPEN関数を使用してファイルを開き、 Freadはファイルの内容を1時間あたり8192バイトで読み取ります。このようにして、大きなファイルを処理すると、ファイル全体が一度にメモリにロードされることを避けることができ、それにより効率が向上します。
Hash_updateは、読み取りデータを現在のハッシュ計算に追加します。
最後に、 hash_finalを呼び出して最終的なハッシュ値を取得します。