この記事では、Windowsのコマンドプロンプトを使用して、バッチファイルでファイルのハッシュ値を計算・確認する方法を詳しく解説します。具体的なコード例とその解説、さらに応用例を取り入れて、あなたもハッシュ値の計算をマスターできるようになりましょう。
コマンドプロンプトとは?
コマンドプロンプトは、Windowsオペレーティングシステムにおいて、ユーザーがコンピュータにテキストベースの「コマンド」を入力して直接操作するためのインターフェースです。このコマンドは、特定の操作を行うための指示や命令をコンピュータに伝えるもので、ファイルの操作、システム設定の変更、ネットワークの管理など、様々なタスクを実行することが可能です。グラフィカルユーザーインターフェース(GUI)の前身として、初期のコンピュータシステムで主に使用されていましたが、今日でも多くの専門家や上級ユーザーが高度なタスクを効率的に実行するためにコマンドプロンプトを使用しています。
ハッシュ値とは?
ハッシュ値は、データから一定の計算ルールに基づき生成される固定長の数値や文字列のことを指します。ファイルの内容が変更された場合、ハッシュ値も変わりますので、ファイルの整合性や変更を検出するために使用されます。
バッチファイルでのハッシュ値の計算
CertUtilというWindowsツールを利用して、バッチファイルでハッシュ値を計算する方法を見ていきましょう。
1 2 3 4 5 6 7 |
REM ファイルのハッシュ値を計算する @echo off setlocal set FILEPATH=%1 CertUtil -hashfile %FILEPATH% MD5 endlocal |
上記のコードは、引数として与えられたファイルのMD5ハッシュ値を計算します。%1
は、バッチファイルを実行する際に渡される第一引数を表します。
コードの詳細解説
1. REM
: コードのコメントを示します。
2. @echo off
: コマンドの実行結果以外の情報を表示しないように設定します。
3. setlocal
: 環境変数の変更をローカル(現在のバッチファイル)に限定します。
4. set FILEPATH=%1
: 引数の値をFILEPATH
変数に格納します。
5. CertUtil -hashfile %FILEPATH% MD5
: CertUtil
コマンドを使用して、指定されたファイルのMD5ハッシュ値を計算します。
6. endlocal
: setlocal
の影響を終了し、環境変数の変更を現在のバッチファイルのみに限定する効果を取り消します。
応用例
応用例1: SHA256ハッシュ値の計算
MD5の代わりに、より安全なSHA256ハッシュ値を計算することもできます。
1 2 3 4 5 6 |
@echo off setlocal set FILEPATH=%1 CertUtil -hashfile %FILEPATH% SHA256 endlocal |
応用例2: ハッシュ値の結果をファイルに出力
1 2 3 4 5 6 7 |
@echo off setlocal set FILEPATH=%1 set OUTPUTFILE=hash_result.txt CertUtil -hashfile %FILEPATH% MD5 > %OUTPUTFILE% endlocal |
このコードでは、計算結果をhash_result.txt
という名前のファイルに出力します。
応用例3: 複数のファイルのハッシュ値を一括計算
1 2 3 4 5 6 7 |
@echo off setlocal for %%i in (*.txt) do ( CertUtil -hashfile "%%i" MD5 ) endlocal |
このコードは、カレントディレクトリの全てのテキストファイル(.txt)のハッシュ値を一括で計算します。
応用例4: 計算したハッシュ値を確認用ファイルと比較
1 2 3 4 5 6 7 8 9 10 11 12 |
@echo off setlocal set FILEPATH=%1 set CHECKSUM=5d41402abc4b2a76b9719d911017c592 CertUtil -hashfile %FILEPATH% MD5 | findstr /C:%CHECKSUM% if %errorlevel%==0 ( echo ファイルは正常です。 ) else ( echo ファイルが変更されています。 ) endlocal |
このコードは、計算されたハッシュ値が指定されたハッシュ値と一致するかどうかをチェックします。一致する場合、「ファイルは正常です。」と表示され、一致しない場合は、「ファイルが変更されています。」と表示されます。
まとめ
バッチファイルを使用して、ファイルのハッシュ値を簡単に計算・確認する方法を学びました。これを応用して、ファイルの整合性確認や変更検出など、様々なシーンで役立てることができます。
コメント