PHPでファイルのMD5を計算、検証する方法

こんにちは、さるまりんです。

以前、シェルスクリプトでやったMD5の計算・検証を今回はPHPでやってみます。

MD5ハッシュを計算する

MD5ハッシュの計算にはmd5_file()関数を使います。

$file = [ファイルのパス];
$md5file = $filepath . '.md5';

$md5 = md5_file($file);

file_put_contents($md5file, $md5);

echo "MD5 hash of $file is $md5, and saved to file $md5file\n";

このスクリプトでは$fileで指定されたファイルのMD5を計算し出力、それをファイル$md5fileに保存しています。

MD5ハッシュを検証する

今度は検証です。保存されたMD5ハッシュの値と、現在のMD5ハッシュを比較します。

$file = [ファイルのパス];
$md5file = $file . '.md5';

// ファイルに保存されたMD5ハッシュを読み込みます
$savedmd5 = file_get_contents($md5file);

// 現在のMD5ハッシュを計算します
$curmd5 = md5_file($file);

// ハッシュが一致するかを比較して検証します
if ($savedmd5 === $curmd5) {
  echo "MD5 hash matches.\n";
} else {
  echo "MD5 hash does not match.\n";
}

シェルスクリプトではコマンドの呼び出し方で、計算、検証を行っていましたが、PHPではどちらも同じようにmd5_file()関数で計算し、その値を比較しています。
この方法を使用すればPHPでファイルの整合性をチェックできますね。
前回と同じく何かあったわけではないですが、大丈夫?と確認しながら進むプログラムは安心して使えますよね。
コンピュータを安全に便利に使いたいなと思います。

読んでくださってありがとうございました。
それではまた!