【PHP8.x】hash_hmac_file関数の使い方
作成日: 更新日:
hash_hmac_file関数は、指定されたファイルのコンテンツに対して、秘密鍵を用いたハッシュベースのメッセージ認証コード(HMAC)を計算し、その結果を返す関数です。HMACは、メッセージの完全性と認証性を同時に保証するための重要なセキュリティメカニズムであり、データが転送中に改ざんされていないか、また、そのデータが信頼できるソースから送られたものかを検証するために利用されます。
この関数を使用する際には、ハッシュアルゴリズム(例えば、'sha256'や'md5'など)を指定し、認証対象となるファイルのパス、そして認証を行うための秘密鍵を提供する必要があります。秘密鍵は送信者と受信者の間で共有され、第三者には知られないように厳重に管理されるべき情報です。
計算されたHMACは、デフォルトでは16進数形式の文字列として返されますが、オプションの引数をtrue
に設定することで、生のバイナリデータとして取得することも可能です。
hash_hmac_file
関数は、大きなファイルをメモリに一度に読み込むことなくHMACを計算できるため、メモリ効率が良く、大規模なファイル処理に適しています。例えば、ダウンロードしたファイルの整合性を検証したり、APIリクエストにおいて送信するファイルの正当性を証明したりする際に利用されます。この関数は、データの信頼性とセキュリティを確保するために不可欠な機能を提供します。
基本的な使い方
構文(syntax)
<?php
$algorithm = 'sha256';
$filePath = 'path/to/your/file.txt';
$secretKey = 'your_secret_key';
$binaryOutput = false;
$hmacValue = hash_hmac_file($algorithm, $filePath, $secretKey, $binaryOutput);
?>
引数(parameters)
string $algo, string $filename, string $key, bool $binary = false
- string $algo: ハッシュアルゴリズムの名前を指定する文字列
- string $filename: ハッシュを計算するファイルの名前を指定する文字列
- string $key: ハッシュ計算に使用する秘密鍵を指定する文字列
- bool $binary = false: trueに設定すると、生のバイナリデータでハッシュを返します。false(デフォルト)の場合は、小文字の16進数文字列で返します。
戻り値(return)
string|false
指定されたファイルの内容から計算されたHMACハッシュ値を文字列として返します。計算に失敗した場合はfalseを返します。