【PHP8.x】hash_final関数の使い方

作成日: 更新日:

hash_final関数は、PHPのhash拡張モジュールに属し、進行中のハッシュ計算を完了させ、最終的なハッシュ値(ダイジェスト)を取得するために実行する関数です。

ハッシュ計算は、データの整合性検証やパスワードの安全な保存など、セキュリティ関連の用途で利用される、入力データから固定長の短い文字列(ハッシュ値)を生成する一方向の処理です。このhash_final関数は、そのハッシュ計算プロセスの最後のステップを担います。

一般的な利用方法としては、まずhash_init()関数で特定のハッシュアルゴリズムを使用して計算コンテキストを初期化します。次に、hash_update()関数を繰り返し呼び出すことで、計算対象となるデータを順次そのコンテキストへ追加していきます。全てのデータが追加された後、hash_final()関数を呼び出すと、それまでに入力されたデータ全体に基づいて最終的なハッシュ値が計算され、結果として返されます。

この関数は、計算されたハッシュ値をデフォルトで小文字の16進数文字列として返しますが、オプション引数binarytrueを指定することで、生バイナリ形式のハッシュ値を取得することも可能です。hash_final()の呼び出しによって、ハッシュ計算に使用された内部コンテキストは自動的に閉じられ、関連するリソースが解放されます。これにより、大規模なデータ処理やストリームデータのハッシュ計算においても、安全かつ効率的に利用できます。

基本的な使い方

構文(syntax)

<?php

$context = hash_init('sha256');
hash_update($context, 'Hello, world!');
$hash = hash_final($context);
echo $hash;

?>

引数(parameters)

HashContext $context, bool $binary = false

  • HashContext $context: hash_init() で生成されたハッシュコンテキストオブジェクト
  • bool $binary = false: true を指定すると、バイナリ形式でハッシュ値が返されます

戻り値(return)

string

ハッシュコンテキストから最終的なハッシュ値を文字列として取得します。

【PHP8.x】hash_final関数の使い方 | いっしー@Webエンジニア