家studyをつづって

IT技術やセキュリティで勉強したことをつづっています。

ファイルのhash値の求め方

概要

不審なファイルを受信したときにVirusTotal等でファイルのスキャンを行う場合がありますが、対象ファイルをそのままアップロードすることができない場合があります。

そのような場合は、ファイルのhash値を取得して調査する方法があります。

この記事はWindowsの標準機能でファイルのhash値を取得する方法をまとめます。

 

 

PowerShellによる方法

以下のコマンドで取得可能です。

Get-FileHash .\hash値を求めたいファイル

実行イメージ

デフォルトではSHA256のハッシュ値となります。
その他、指定可能なアルゴリズムはSHA1、SHA256、SHA384、SHA512、MD5です。
アルゴリズムを指定する際は以下のコマンドになります。

Get-FileHash -Algorithm アルゴリズム .\hash値を求めたいファイル

 

コマンドプロンプトによる方法

以下のコマンドで取得可能です。

certutil -hashfile .\hash値を求めたいファイル.txt MD5

実行イメージ

なお以下のエラーが出る場合は対象ファイルのサイズが0である可能性があります。

CertUtil: -hashfile コマンド エラーです: 0x800703ee (WIN32: 1006 ERROR_FILE_INVALID)

CertUtil: ファイルを格納しているボリュームが外部的に変更されたため、開かれているファイルが無効になりました。

 

デフォルトではSHA1のハッシュ値となります。
その他、指定可能なアルゴリズムはMD2、MD5、SHA1、SHA256、SHA384、SHA512です。

 

WSL(Linux)による方法

以下のコマンドで取得可能です。

sha256sum ./hash値を求めたいファイル.txt

md5sumというコマンドもありますが、現在は安全性が高い方式のsha256sumコマンドが推奨されています。md5sumの使用方法はsha256sumと共通です。

 

余談:ダウンロードファイルの破損確認

ハッシュ値はダウンロードしたファイルが改ざんされていないかどうかを確認するために使用することもあります。

ダウンロードしたファイルのハッシュ値と、公式サイトに載っているハッシュ値が一致するかどうかで判断することができます。

サイト上のハッシュ値のイメージ

Index of /Linux/centos/7.9.2009/isos/x86_64

参考にさせていただいたサイト

atmarkit.itmedia.co.jp

hana-shin.hatenablog.com