WindowsやLinuxでファイルの同一性をハッシュ値で確認する方法

WindowsやLinuxでファイルの同一性をハッシュ値で確認する方法

インターネットで配布されているファイル(特に大容量のイメージファイルなど)は、ダウンロード時に破損したり、改ざんされる可能性があるため、ファイルの「ハッシュ値(チェックサム)」が掲載されていることがあります。

ファイルのハッシュ値は、ファイルの内容をアルゴリズムに基づいて計算し、固定長のデータに変換したもので、通常は16進数で表記されます。

このハッシュ値は、ファイルの内容が1bit違っているだけでも大きく異なるため、ダウンロードしたファイルのハッシュ値と、Webサイトに掲載されているハッシュ値を比較することで、ダウンロードしたファイルの同一性(整合性)を確認することができます。

そこでここでは、WindowsやLinuxの標準コマンドで、ファイルのハッシュ値を確認する方法を紹介します。

Windowsでハッシュ値を確認

Windowsコマンド

Windowsでファイルのハッシュ値を確認するときは、標準搭載の「certutil」コマンドを使います。

たとえば、ダウンロードしたISOイメージファイル「sample.iso」のMD5ハッシュ値を確認するときは、次のようにコマンドを実行します。

> certutil -hashfile sample.iso md5

MD5 ハッシュ (対象 sample.iso):
d8e8fca2dc0f896fd7cb4cb0031ba249
CertUtil: -hashfile コマンドは正常に完了しました。

ハッシュアルゴリズムには、MD5以外のもSHA256なども指定できます。

PowerShellコマンドレット

PowerShellコマンドレットでファイルのハッシュ値を確認する場合は「Get-FileHash」コマンドレットを使います。

たとえば、ダウンロードしたISOイメージファイル「sample.iso」のSHA256ハッシュ値を確認するときは、次のようにコマンドを実行します

PS> Get-FileHash -Algorithm sha256 sample.iso

Algorithm  Hash                                                             Path
---------  ----                                                             ----
SHA256     f2ca1bb6c7e907d06dafe4687e579fce76b37e4e93b7605022da52e6ccc26fd2 sample.iso

Linuxでハッシュ値を確認

LinuxでファイルのMD5ハッシュ値を確認するときは「md5sum」コマンドを使って、以下のように実行します。

$ md5sum sample.iso
d8e8fca2dc0f896fd7cb4cb0031ba249 sample.iso

SHA256のハッシュ値を確認するときは「sha256sum」コマンドを使って、以下のように実行します。

$ sha256sum sample.iso
f2ca1bb6c7e907d06dafe4687e579fce76b37e4e93b7605022da52e6ccc26fd2 sample.iso

あとがき

WindowsやLinuxでダウンロードしたファイルの同一性を確認したいときは、上に紹介しているコマンドを使えば事足りるでしょう。