関数の概要
PHPのmd5関数は、指定した文字列のMD5ハッシュ値を計算して返すための関数です。MD5は128ビット(16バイト)のハッシュ値を生成し、その結果は32文字の16進数の文字列として表されます。パスワードの暗号化やデータの整合性チェックなどに使われますが、セキュリティ面では現代の標準には適さないため注意が必要です。
パラメータの説明
string $str– ハッシュ化したい元の文字列を指定します。bool $raw_output(省略可能、デフォルトはfalse) – 出力形式を指定します。falseの場合、32文字の16進数の文字列を返します。trueの場合、生の16バイトのバイナリデータを返します。
戻り値
指定した文字列のMD5ハッシュ値を返します。$raw_outputがfalseの場合は32文字の16進数文字列、trueの場合は16バイトのバイナリデータとなります。
使用例
基本的な使い方
<?php
$input = "hello world";
$hash = md5($input);
echo $hash; // 5eb63bbbe01eeed093cb22bb8f5acdc3
?>
文字列「hello world」のMD5ハッシュを計算し、32文字の16進数文字列として出力しています。
バイナリ形式で取得する例
<?php
$input = "hello world";
$rawHash = md5($input, true);
echo bin2hex($rawHash); // 5eb63bbbe01eeed093cb22bb8f5acdc3
?>
$raw_outputパラメータをtrueに設定して生のバイナリデータを取得し、bin2hexで16進数に変換して表示しています。
複数の文字列のハッシュを配列で取得
<?php
$strings = ["apple", "banana", "cherry"];
$hashes = array_map("md5", $strings);
print_r($hashes);
/*
Array
(
[0] => 1f3870be274f6c49b3e31a0c6728957f
[1] => 72b302bf297a228a75730123efef7c41
[2] => c7a4476fc64b50a6cbf8a207860a0c22
)
*/
?>
配列内の複数の文字列に対してまとめてmd5関数を適用しています。これはデータセットの整合性チェックに役立ちます。
関連する関数
hash()– より安全な様々なハッシュアルゴリズムを利用できます。sha1()– SHA-1ハッシュを生成します。password_hash()– パスワードのハッシュ化に推奨される関数です。bin2hex()– バイナリデータを16進数文字列に変換します。
まとめ
md5関数はシンプルに文字列のMD5ハッシュを取得できる便利な関数ですが、セキュリティに厳しい用途には向いていません。パスワード管理などの重要な用途にはpassword_hash()やhash()関数でより強力なアルゴリズムを使用することをおすすめします。日常的なデータ整合性チェックや簡単な識別子の生成などには十分活用できますので、使用場面を考慮して使い分けましょう。
