概要
Windows の標準機能でファイルのハッシュ値を取得する方法について簡単に説明します。
方法
方法としては
- コマンド プロンプトにて certutil -hashfile コマンドを使用する
- Windows PowerShell にて Get-FileHash コマンドレットを使用する
の二通りがあります。
違いは下記になります。
方法 | 取得結果の種類 | 対応するアルゴリズム |
---|---|---|
certutil コマンド | 文字列 | MD2 MD4 MD5 SHA1 SHA256 SHA384 SHA512 |
Get-FileHash コマンドレット | オブジェクト | MD5 SHA1 SHA256 SHA384 SHA512 MACTripleDES Ripemd160 |
用途に応じてどちらを選択するか選択してください。
certutil -hashfile コマンド について
certutil コマンドは証明書に関連する操作をおこなうコマンドですが -hashfile パラーメーターを付与することでファイルのハッシュ値を取得することが可能です。
下記にてファイルのハッシュ値の取得が可能です。
CertUtil [オプション] -hashfile 取得したいファイルパス [取得するハッシュアルゴリズム]
実行例
C:\Users\User>certutil -hashfile c:\temp\test.txt sha256
SHA256 ハッシュ (対象 c:\temp\test.txt):
61be55a8e2f6b4e172338bddf184d6dbee29c98853e0a0485ecee7f27b9af0b4
CertUtil: -hashfile コマンドは正常に完了しました。
なおアルゴリズムを未指定とした場合、 SHA1 のハッシュ値が取得されます。
なお Microsoft の公開情報としては
ぐらいであまり詳細な情報はありません。
不足があれば certutil -hashfile /? にてヘルプを参照してください。
Get-FileHash コマンドレットについて
Get-FileHash コマンドレットは公開情報がありますのでまずはそちらを確認してみて下さい。
Get-FileHash (Microsoft.PowerShell.Utility) - PowerShell | Microsoft Learn
下記にてファイルのハッシュ値の取得が可能です。
Get-FileHash 取得したいファイルパス[-Algorithm 取得するハッシュアルゴリズム]
実行例
PS C:\Users\User> Get-FileHash c:\temp\test.txt -Algorithm sha256
Algorithm Hash Path
--------- ---- ----
SHA256 61BE55A8E2F6B4E172338BDDF184D6DBEE29C98853E0A0485ECEE7F27B9AF0B4 C:\temp\test.txt
なおアルゴリズムを未指定とした場合、 SHA256 のハッシュ値が取得されます。
また、 Windows PowerShell の初期値の状態では SHA384 ならびに SHA512 でハッシュ値を取得しますと下記のように出力結果が見切れます。
パイプラインで Format-List につないでいただければ見切れずに目視での確認が可能です。
PS C:\Users\User> Get-FileHash c:\temp\test.txt -Algorithm sha512
Algorithm Hash Path
--------- ---- ----
SHA512 1B86355F13A7F0B90C8B6053C0254399994DFBB3843E08D603E292CA13B8F672ED5... C:\temp\test.txt
PS C:\Users\User> Get-FileHash c:\temp\test.txt -Algorithm sha512 | Format-List
Algorithm : SHA512
Hash : 1B86355F13A7F0B90C8B6053C0254399994DFBB3843E08D603E292CA13B8F672ED5E58791C10F3E36DAEC9699CC2FBDC88B4FE116EF
A7FCE016938B787043818
Path : C:\temp\test.txt
最後に
今回は Windows に標準機能でファイルのハッシュ値を取得する方法についてまとめました。
OS 標準とは言えませんが、 Excel のマクロでファイルのハッシュ値を取得する方法もあるようです。
また、ファイルのハッシュ値を取得するツールは様々なものが提供されておりますので、OS 標準機能との制限がなければより利便性の高いツールを利用していただければと思います。