hash

関数の概要

PHPの hash 関数は、指定したアルゴリズムで文字列のハッシュ値を計算するための便利な関数です。ハッシュ関数はデータの整合性チェックやパスワードの保存、セキュリティトークンの生成など様々な用途で利用されます。任意のハッシュアルゴリズムを選択できるため、用途に合わせて最適な方法でデータを保護できます。

パラメータの説明

  • string $algo: 使用するハッシュアルゴリズムの名前(例:”md5″, “sha256″など)。hash_algos()関数で利用可能なアルゴリズム一覧を取得できます。
  • string $data: ハッシュ化したい元の文字列。
  • bool $binary(省略可能): trueを指定するとバイナリ形式でハッシュ値を返します(デフォルトは false で16進数文字列)。

戻り値

指定したアルゴリズムでハッシュ計算した結果の文字列を返します。$binary パラメータが false の場合は16進数表現の文字列、true の場合はバイナリデータが返されます。

使用例

基本的な使い方(SHA-256)

<?php
$data = "password123";
$hashValue = hash("sha256", $data);
echo $hashValue;
?>

この例では、password123 という文字列を SHA-256 アルゴリズムでハッシュ化し、結果を16進数の文字列として表示しています。

MD5ハッシュの取得

<?php
$data = "hello world";
$md5Hash = hash("md5", $data);
echo $md5Hash;
?>

MD5は古典的なハッシュですが、セキュリティ的には弱いため、重要データには利用を避けるべきです。ただしチェックサムなど簡易的な用途ではまだ使われます。

バイナリ形式でのハッシュ取得

<?php
$data = "example";
$binaryHash = hash("sha1", $data, true);
var_dump($binaryHash);
?>

3番目のパラメータに true を指定すると、ハッシュ値を生のバイナリデータとして取得できます。ファイルのハッシュ比較や暗号処理などでバイナリ形式が必要な場合に便利です。

関連する関数

  • hash_algos() – 利用可能なハッシュアルゴリズム一覧を配列で取得
  • hash_file() – ファイルの内容を指定アルゴリズムでハッシュ化
  • password_hash() – セキュアなパスワードハッシュの生成に特化した関数
  • hash_equals() – ハッシュ値の安全な比較を行う関数

まとめ

PHPの hash 関数は、様々なハッシュアルゴリズムで文字列を簡単にハッシュ化できる強力なツールです。用途に応じてアルゴリズムを切り替えられるため、セキュリティ要件や処理速度に応じて柔軟に対応できます。初心者でも使いやすく、実務でもパスワード管理やデータ検証など多くの場面で活用可能です。より安全なパスワード処理には password_hash() などの専用関数もあわせて利用しましょう。