ダウンロードしたファイルなどのハッシュ値を計算するとき、Windowsの標準機能を使う方法。
試した環境
以下におけるコマンドプロンプトとPowerShell
・Windows 10 1909
・Windows Server 2016
書式
cmd/PS> certutil -hashfile <ファイルパス> [ハッシュアルゴリズム]
ハッシュアルゴリズムは、以下が指定できる。
・MD2
・MD4
・MD5
・SHA1
・SHA256
・SHA384
・SHA512
省略するとSHA1 になる。
※アルゴリズムの一覧は、certutil -v -? で確認できる。
参考)certutil
docs.microsoft.com
以下、内容に「123」と書いたテキストファイルのハッシュ値を計算した例。
MD5
PS E:\> certutil -hashfile .\sample.txt MD5 MD5 ハッシュ (対象 .\sample.txt): 202cb962ac59075b964b07152d234b70 CertUtil: -hashfile コマンドは正常に完了しました。
SHA1
PS E:\> certutil -hashfile .\sample.txt SHA1 SHA1 ハッシュ (対象 .\sample.txt): 40bd001563085fc35165329ea1ff5c5ecbdbbeef CertUtil: -hashfile コマンドは正常に完了しました。
SHA256
PS E:\> certutil -hashfile .\sample.txt SHA256 SHA256 ハッシュ (対象 .\sample.txt): a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3 CertUtil: -hashfile コマンドは正常に完了しました。
SHA384
PS E:\> certutil -hashfile .\sample.txt SHA384 SHA384 ハッシュ (対象 .\sample.txt): 9a0a82f0c0cf31470d7affede3406cc9aa8410671520b727044eda15b4c25532a9b5cd8aaf9cec4919d76255b6bfb00f CertUtil: -hashfile コマンドは正常に完了しました。
SHA512
PS E:\> certutil -hashfile .\sample.txt SHA512 SHA512 ハッシュ (対象 .\sample.txt): 3c9909afec25354d551dae21590bb26e38d53f2173b8d3dc3eee4c047e7ab1c1eb8b85103e3be7ba613b31bb5c9c36214dc9f14a42fd7a2fdb84856bca5c44c2 CertUtil: -hashfile コマンドは正常に完了しました。
0バイトのファイルを試すと・・・
以下のエラーが出る場合は、ファイルサイズが0の場合がある。
0バイトのテキストファイルなどで試すと確認できる。
PS E:\> certutil -hashfile sample.txt MD5 CertUtil: -hashfile コマンド エラーです: 0x800703ee (WIN32: 1006 ERROR_FILE_INVALID) CertUtil: ファイルを格納しているボリュームが外部的に変更されたため、開かれているファイルが無効になりました。