PHP md5_file() 関数

❮ PHP 文字列リファレンス

テキストファイル "test.txt"のMD5ハッシュを計算します:

<?php
$filename = "test.txt";
$md5file = md5_file($filename);
echo $md5file;
?>

上のコードの出力は、次の通り:

d41d8cd98f00b204e9800998ecf8427e


定義と用法

md5_file() 関数は、ファイルのMD5ハッシュを計算します。

md5_file() 関数は、RSA Data Security、Inc.のMD5メッセージダイジェストアルゴリズムを使用します。

RFC 1321 - MD5メッセージダイジェストアルゴリズムから:MD5メッセージダイジェストアルゴリズムは、任意の長さのメッセージを入力として、128ビットの「フィンガープリント」または「メッセージ・ダイジェスト」を出力します。MD5アルゴリズムはデジタル署名アプリケーションを目的とします、そこで、大きなファイルはRSAのような公開鍵暗号方式の下で私的な(秘密)キーで暗号化される前に安全な方法で「圧縮されなければなりません」。

文字列ののMD5ハッシュを計算するには、 md5() 関数を使用します。


構文

md5_file(file,raw)

パラメータ 説明
file 必須。計算する文字列ファイル
raw 任意。16進または2進の出力形式を指定するブール値:
  • TRUE - 16 バイト長のバイナリ形式
  • FALSE - デフォルト。32文字の16進数

技術内容
返り値: 成功した場合は計算したMD5ハッシュを返します。失敗した場合はFALSEを返します。
PHP バージョン: 4.2.0+
変更歴 raw パラメータは、PHP 5.0で追加されました

PHP 5.1の時点で、例えば md5_file("https://w3schools.com/..") のように、 md5_file()をラッパー付きで使用できるようになりました

その他の例

例 1

"test.txt"のMD5ハッシュをファイルに保存します:

<?php
$md5file = md5_file("test.txt");
file_put_contents("md5file.txt",$md5file);
?>

Test if "test.txt" has been changed (that is if the MD5 hash has been changed):

<?php
$md5file = file_get_contents("md5file.txt");
if (md5_file("test.txt") == $md5file)
  {
  echo "The file is ok.";
  }
else
  {
  echo "The file has been changed.";
  }
?>

上のコードの出力は次の様になります:

The file is ok.


❮ PHP 文字列リファレンス