Webサイトなどで配布されているファイル(特に大容量のイメージファイルなど)は、ダウンロード時に破損したり、改ざんされる可能性があるため、ファイルの「ハッシュ値(チェックサム)」が掲載されていることがあります。
ファイルのハッシュ値は、ファイルの内容をアルゴリズムに基づいて計算し、固定長のデータに変換したもので、通常は16進数で表記されます。
たとえば、CentOS Linuxの場合だと、イメージファイルのダウンロードサイトにファイルのハッシュ値を記述したファイルが用意されています。
https://ftp.riken.jp/Linux/centos/7.9.2009/isos/x86_64/sha256sum.txt
このハッシュ値は、ファイルの内容が1bit違っているだけでも大きく異なるため、ダウンロードしたファイルのハッシュ値と、Webサイトに掲載されているハッシュ値を比較することで、ダウンロードしたファイルの同一性(整合性)をチェックできます。
ファイルのハッシュ値を確認する場合、サードパーティーのツールを利用して確認することもできますが、Windows 10なら標準搭載のコマンドで確認できます。
そこでここでは、Windows 10の標準コマンドでファイルのハッシュ値を確認する方法を紹介します。
目次
動作環境
この記事は、以下の環境での動作結果を基にしています。他のエディションやバージョンでは、動作結果が異なる場合があることをご了承ください。
ソフトウェア | バージョン |
---|---|
Windows 10 Pro 64bit | 1903 |
Windowsコマンドで確認する
Windowsコマンドでファイルのハッシュ値を確認する場合は「certutil」コマンドを利用します。
例として「CentOS-7-x86_64-Minimal-1810.iso」をダウンロードして、ファイルのハッシュ値を比較してみます。
Webサイトに掲載されているハッシュ値とアルゴリズムは、次のとおりです。
sha256: 38d5d51d9d100fd73df031ffd6bd8b1297ce24660dc8c13a3b8b4534a4bd291c
ダウンロードしたISOイメージファイルのハッシュ値を求めるには、次のようにコマンドを実行します。
> certutil -hashfile CentOS-7-x86_64-Minimal-1810.iso sha256
コマンドを実行すると、以下のようにハッシュ値が表示され、Webサイトに掲載されているハッシュ値と同一であることが確認できます。
SHA256 ハッシュ (対象 CentOS-7-x86_64-Minimal-1810.iso):
38d5d51d9d100fd73df031ffd6bd8b1297ce24660dc8c13a3b8b4534a4bd291c
CertUtil: -hashfile コマンドは正常に完了しました。
PowerShellコマンドレットで確認する
PowerShellコマンドレットでファイルのハッシュ値を確認する場合は「Get-FileHash」コマンドレットを利用します。
ダウンロードしたISOイメージファイルのハッシュ値を求めるには、次のようにコマンドを実行します。
> Get-FileHash -Algorithm sha256 CentOS-7-x86_64-Minimal-1810.iso
コマンドを実行すると、以下のようにハッシュ値が表示され、Webサイトに掲載されているハッシュ値と同一であることが確認できます。
Algorithm Hash Path
--------- ---- ----
SHA256 38D5D51D9D100FD73DF031FFD6BD8B1297CE24660DC8C13A3B8B4534A4BD291C E:\CentOS-7-x86_64-Minimal-1810.iso
あとがき
Windows環境で何かしたいとき、すぐにサードパーティのツールに手を出す前に、標準機能で何とかできないか調べてみると、意外に標準機能で事足りることもありますよ。