フォルダ内全てのzipファイルのハッシュ値を取得する
仕事で何十個のファイルのハッシュ値を確認必要がでてきたのだが、いちいちプロパティからハッシュ値確認するのがおっくうになったので、ハッシュ値を確認をするliunxをwindowsのコマンドプロンプトでも使えるようにするのと同時に、フォルダ内の全zipファイルをまとめてハッシュ値を確認するバッチファイルを作成した。
そのため、ハッシュ値とは何かも含めて下記の構成で情報共有する。
- ハッシュ値とは
- ハッシュ値の表示の仕方
- コマンドプロンプトでハッシュ値を表示するためのバッチファイル
1:ハッシュ値とは
ハッシュ値とは、ざっくりいうとファイルや文章の改ざんがないことを確かめるためのツ一ルである。
ハッシュ値の作り方としては、MD5やsha1と呼ばれるハッシュ関数を用いてPC内の数字を変換している。
これらのハッシュ関数は、変換されたファイルから変換前の元ファイルを推測することは非常に困難である不可逆性という特徴がある。そのため、フォルダが別のものに変わったらハッシュ値も基本違うものになることから改ざんを検知できる仕組みになっている。
なお、コンピュータセキュリティの世界では、改ざん防止のために作成されたハッシュ値から元の値に解読されるまでの時間を引き伸ばすためにハッシュ値からさらにハッシュ関数を用いてハッシュ値のハッシュ値を作成するという手法がとられることもあるそうです。
2:ハッシュ値の表示の仕方(GUI)
ハッシュ値を表示するだけなら、下記のアプリを利用することで「プロパティ」から表示することができる。
3:コマンドプロンプトでハッシュ値を表示するためのバッチファイル
最初に試しに表示してみる段階では、GUIで問題ないはずだが、仕事で何十個のファイルのハッシュ値を確認するとなると、いちいちプロパティを確認するのがおっくうになってくる。
そんな人の為に、ハッシュ値を確認するlinuxコマンドをWindowsのCUIのコマンドプロンプトでも使えるようにするためのバッチファイルを作成した。
また、追加要素としては、オプションとして「-z」をつけるとフォルダ内の全てのZipファイルのハッシュ値を「filelist.txt」テキストファイルに書き出すようになっている
なお、バッチファイルは下記の通りである。
○md5sum.bat
@echo off
if "%~1"=="-z" (
for %%f in (*.zip) do certutil -hashfile "%%f" MD5 >>hashlist.txt
) else (
certutil -hashfile %1 MD5
)
○sha256sum.bat
@echo off
if "%~1"=="-z" (
for %%f in (*.zip) do certutil -hashfile "%%f" SHA256 >>hashlist.txt
) else (
certutil -hashfile %1 SHA256
)
※なお、sha1sumを用いたハッシュ値については下記のように入力すると良い
doskey sha1sum=certutil -hashfile $*
以上です。使ってもらってお役に立てると嬉しいです。
問題ページに戻る