【PHP8.x】sodium_crypto_generichash_final関数の使い方
作成日: 更新日:
sodium_crypto_generichash_final関数は、暗号学的ハッシュ値を計算する一連の処理を完了させ、最終的なハッシュ値を出力する関数です。この関数は、sodium_crypto_generichash_init
で初期化され、sodium_crypto_generichash_update
で段階的にデータが追加されたハッシュ計算の中間状態(ハッシュステート)を受け取ります。ハッシュステートは、ハッシュ計算の進行状況を内部的に保持する情報です。
sodium_crypto_generichash_final
を呼び出すことで、それまでに処理された全てのデータに基づいた、固定長の最終的なハッシュ値がバイト列として返されます。このハッシュ値は、入力されたデータが少しでも変更されると全く異なる値になるという特性を持つため、データの完全性(データが途中で改ざんされていないこと)の検証や、パスワードの安全な保存など、セキュリティが重要な場面で利用されます。
特に、大量のデータを一度にメモリに読み込むことが難しい場合や、ストリーム処理を行う場合に、データを分割して少しずつハッシュ計算を進めることが可能です。本関数は、その分割計算の最終段階を担い、信頼性の高いBLAKE2bアルゴリズムによって、堅牢なハッシュ計算を安全に完了させます。
基本的な使い方
構文(syntax)
1<?php 2$hash_state_variable = ''; 3$final_hash_result = sodium_crypto_generichash_final($hash_state_variable, SODIUM_CRYPTO_GENERICHASH_BYTES_MAX); 4?>
引数(parameters)
string $state, int $length = SODIUM_CRYPTO_GENERICHASH_BYTES_MAX
- string $state: ハッシュ計算の中間状態を表す文字列
- int $length = SODIUM_CRYPTO_GENERICHASH_BYTES_MAX: 生成するハッシュ値のバイト長。デフォルトは最大許容バイト長
戻り値(return)
string
ハッシュ化処理の最終結果を、バイナリ形式の文字列として返します。