以前Cisco機器のFlash内ファイルのMD5チェックサムの確認方法を取り上げたが、
その時にWindowsは別途ツールを落とす必要がありそうだと記載した。

しかし、よくよく調べてみるとWindowsの標準機能でもMD5チェックサムを
確認できることがわかったのでメモしておく。


コマンドプロンプトでの確認


コマンドプロンプトの下記コマンドにて確認することができる。

 certutil -hashfile [Filename] [HashAlgorithm]


下記のように"-?"を指定することでヘルプを見ることができる。
ヘルプにて、使用できるハッシュアルゴリズムが確認できるのだ。

 D:\work>certutil -hashfile -?
使用法:
CertUtil [オプション] -hashfile InFile [HashAlgorithm]
ファイルに暗号化ハッシュを生成し表示します

オプション:
-Unicode -- リダイレクトされた出力を Unicode として書き込む
-gmt -- 時刻を GMT で表示します
-seconds -- 時間を秒とミリ秒で表示します
-v -- メッセージを詳細に表示します
-privatekey -- パスワードと秘密キーのデータを表示します
-pin PIN -- スマート カードの PIN
-sid WELL_KNOWN_SID_TYPE -- 数値 SID
22 -- ローカル システム
23 -- ローカル サービス
24 -- ネットワーク サービス

ハッシュ アルゴリズム: MD2 MD4 MD5 SHA1 SHA256 SHA384 SHA512

CertUtil -? -- 動詞の一覧 (コマンドの一覧) を表示します
CertUtil -hashfile -? -- "hashfile" 動詞のヘルプ テキストを表示します
CertUtil -v -? -- すべての動詞のヘルプ テキストをすべて表示します


ハッシュアルゴリズム指定なしで試してみる。
ちなみにハッシュアルゴリズムを指定しなければ"SHA1"になるみたいだ。

 D:\work>certutil -hashfile test.txt
SHA1 ハッシュ (対象 test.txt):
05a48d54620415154acd4f5cba68ab59369a01c0
CertUtil: -hashfile コマンドは正常に完了しました。


ハッシュアルゴリズムをMD5にしてみる。

 D:\work>certutil -hashfile test.txt MD5
MD5 ハッシュ (対象 test.txt):
55e1c5742a5dc43021944b71107a7374
CertUtil: -hashfile コマンドは正常に完了しました。


こんな感じ。

注意点として、ハッシュアルゴリズム部分は大文字で記載した方が良い。
Windows10では小文字でも問題なかったが、Windows7ではエラーになった。
基本、大文字で記載すると覚えておけば問題ないだろう。

ちなみにLinuxでも確認してみた。

 user@user-PC:~$ md5sum test.txt
55e1c5742a5dc43021944b71107a7374 test.txt


差異なしなので問題なし!


バッチファイルで簡単確認


使用する頻度が高い場合は毎回コマンド打つのも面倒くさい。
そこで超簡単なバッチファイルを作ってみた。
こういうことするからコマンドが覚えられないのだな・・・。

 @echo off
certutil -hashfile %1 MD5
pause


上記をテキストエディタに貼って、拡張子".bat"で保存すればOK。

使い方は、チェックサムを調べたいファイルをこのバッチファイルにD&Dすれば良い。
実行結果は下記になる。

md5bat_000.jpg

"pause"を入れてあるので、確認が終わったら何かキーを押せば自動で消える。
うむ、シンプルイズベストなバッチファイルだな。


PowerShellでの確認


ついでなので、PowerShellでの確認方法も記載しておく。
v4あたりから標準で使えるみたいだ。

まずはオプションなしで実行してみる。
コマンドプロンプトと違って、デフォルトは"SHA256"みたいだ。

 PS D:\work> Get-FileHash test.txt

Algorithm Hash Path
--------- ---- ----
SHA256 78F31E73301AF4CD5CCA6DCE4BB8B939076D129D719ED3D51F149A36673F5F2B D:\work\test.txt


MD5チェックサムを確認する場合は下記になる。

 PS D:\work> Get-FileHash test.txt -Algorithm MD5

Algorithm Hash Path
--------- ---- ----
MD5 55E1C5742A5DC43021944B71107A7374 D:\work\test.txt


あんまPowerShell使ったことないけどそんなに難しくはないな。
まぁこんなコマンドすぐ忘れるだろうけど・・・。


本日は以上で。



【イラスト図解満載】情報セキュリティの基礎知識