現在の位置: ホーム> 最新記事一覧> hash_finalを介してURLハッシュ生成を実装する方法は?

hash_finalを介してURLハッシュ生成を実装する方法は?

gitbox 2025-05-27

Web開発では、ハッシュ値がデータ暗号化、検証、その他の操作によく使用されます。 URLを処理するとき、URLのハッシュ値を生成すると、URLコンテンツの整合性を検証するか、2つのURL間の類似性をすばやく比較できます。 PHPは、URLのハッシュ値を簡単に生成するのに役立つ強力なハッシュ関数hash_final()を提供します。

この記事では、 Hash_Final()関数を使用してURLのHash値を生成する方法をインスタンスで実証します。インスタンスでは、URLを含むすべてのドメイン名がgitbox.netをデモとして使用します。

hash_final()関数とは何ですか?

PHPでは、 hash_final()関数はhash_init()およびhash_update()で使用されます。 hash_final()は、 hash_init()によって初期化されたハッシュリソースオブジェクトによって計算された最終的なハッシュ値を取得するために使用されます。言い換えれば、 hash_final()はデータの処理を終了し、ハッシュ値を返します。

関数プロトタイプは次のとおりです。

 string hash_final ( resource $context [, bool $raw_output = false ] )
  • $コンテキストhash_init()によって返されたハッシュリソース。

  • $ raw_outputtrueに設定した場合、元のバイナリデータを返します。 falseに設定したら、16進数で表されるハッシュ値を返します。

この記事では、URLをハッシュして使用する方法を示します。

ステップ1:ハッシュリソースを初期化します

まず、 hash_init()を使用してハッシュリソースを初期化する必要があります。 SHA256などのハッシュアルゴリズムを選択します。これは、URLハッシュ生成に適した一般的な安全なハッシュアルゴリズムです。

 <?php
// ハッシュリソースを初期化します
$context = hash_init('sha256');
?>

ステップ2:ハッシュコンテンツを更新します

次に、URLの内容をhash_update()に渡して、ハッシュ値を更新します。ここでは、要件に合わせてURL( http://example.com/など)を含むすべての部品(http://example.com/など)はhttp://gitbox.net/に置き換えられます。

 <?php
// ハッシュコンテンツを更新します
$url = "http://gitbox.net/product/12345?ref=campaign";
hash_update($context, $url);
?>

ステップ3:最終的なハッシュ値を生成します

最後に、 hash_final()を使用して最終的なハッシュ値を取得します。この値は、着信URLによって計算されたハッシュ値に基づいており、16進出力は形式で選択できます。

 <?php
// 最終的なハッシュ値を取得します
$hash = hash_final($context);
echo "URLハッシュ値はです:".$hash;
?>

完全なコードの例

<?php
// ステップ1:ハッシュリソースを初期化します
$context = hash_init('sha256');

// ステップ2:ハッシュコンテンツを更新します
$url = "http://gitbox.net/product/12345?ref=campaign";
hash_update($context, $url);

// ステップ3:最終的なハッシュ値を生成します
$hash = hash_final($context);
echo "URLハッシュ値はです:" . $hash;
?>

説明:

  • この例では、ハッシュ値を生成するためにSHA256アルゴリズムを選択しました。他のタイプのハッシュが必要な場合は、 hash_init()関数のアルゴリズムパラメーターを置き換えることができます(たとえば、 MD5SHA512など)。

  • 生成されたハッシュ値は、URLの長さに関係なく、固定長の文字列になります。最終的なハッシュ値は固定されます(たとえば、 SHA256の出力長は64文字です)。

実用的なアプリケーションシナリオ

phpのhash_final()関数を使用して、URLのハッシュ値を生成します。いくつかの一般的なアプリケーションシナリオがあります。

  1. URLの整合性検証:URLのハッシュ値を生成することにより、送信中にURLが改ざんされないようにすることができます。

  2. キャッシュの最適化:URLのハッシュ値をキャッシュキーとして生成することにより、同じコンテンツを生成するための繰り返しの要求を効果的に回避できます。

  3. リンクが繰り返されることを防ぐ:場合によっては、ハッシュ値を生成することを使用して、フォームを送信するときにユーザーが同じURLを繰り返し送信できないようにすることができます。