ファイルをダウンロードしてみたら、ファイルが壊れていたり変更されていたりすることがありましたか? ファイルの整合性を確認する最も良い方法は、ファイルのチェックサムまたはハッシュを検証することです。幸いなことに、Windowsでファイルのチェックサムを検証する方法はいくつかあります。
無料でWindowsでファイルのチェックサムを計算するための組み込みのWindowsツールやサードパーティのユーティリティを使用する方法を学びましょう。
この記事では、5つの異なるツールを使用してWindowsでチェックサムを作成する方法を学びます。最後まで読むと、Windowsでハッシュを作成する方法を確実に知ることができるはずです!
前提条件
この記事はハウツー記事なので、実際にやってみる方法を追います。この記事で使用するツールのいくつかは、組み込みのものまたはMicrosoftから提供されています。一部はサードパーティのソースからも提供されています。一緒に進むためには、少なくともWindows 10が動作するコンピューター、または最低限Windows Server 2012が必要です。
チェックサムを生成する各方法の前提条件は、必要に応じて提供されます。
ファイルのチェックサム整合性検証ツール(FCIV)
Microsoftのツールであるファイルのチェックサム整合性検証ツール(FCIV)は、元々Windows Server 2012 R2で導入され、すべての将来のバージョンで利用できます。
C:\Tools\fciv.exeにFCIVツールをインストールしたと仮定します。VSCodeUserSetup-x64-1.52.1.exeというファイルのMD5チェックサムを生成するために、以下のコマンドをコマンドプロンプトまたはPowerShellプロンプトで実行します。ファイルが他の場所にある場合は、適切に場所を変更してください。
FCIVコマンドを実行すると、以下のスクリーンショットに示されているような結果が表示されます。ご覧のように、fciv.exe
コマンドはデフォルトで指定されたファイルのMD5ハッシュを生成します。

fciv.exe
.FCIVはMD5またはSHA-1のファイルハッシュの生成しかできません。
MD5チェックサムを計算したので、同じファイルのSHA-1チェックサムも生成しましょう。上記の例で使用したファイルのSHA-1チェックサムを生成するには、既存のコマンドの末尾にsha1
オプションを追加します。以下のスクリーンショットに示されているように、同じファイルのSHA-1ハッシュが生成されます。

fciv.exe
.お疲れ様でした!MD5チェックサムとSHA-1チェックサムの両方を作成しました。では、MD5ハッシュ値とSHA-1ハッシュ値の両方を同時に生成してみましょう。sha1
オプションの代わりにboth
を使用します。
生成されたハッシュ値はMD5とSHA-1としてラベル付けされます。both
パラメータを使用することで、MD5とSHA-1のハッシュ値を同時に生成する際に時間を節約することができます。

fciv.exe
.FCIVはファイルハッシュを計算する便利なツールですが、FCIVは古く、ハッシュアルゴリズムがMD5とSHA-1に限定されています。Microsoftは公式にFCIVをサポートしていないコマンドラインツールと宣言しています。それにもかかわらず、他のツールがない場合には、FCIVは優れた代替手段として機能します。
この時点で、fciv.exe
ツールを使用してMD5およびSHA-1ハッシュ値を作成しました。これまでのところどう思いますか?次のツールを学ぶ準備ができていると思います。
Certutilを使用する
Certutilは、Windowsでファイルのチェックサムを生成するためのもう一つの優れたツールです。正確なプログラム名はcertutil.exe
で、そのまま使用できます。
certutil.exe
の主な目的は証明書ですが、certutil.exe
には、Windowsで次のハッシュアルゴリズムを使用してファイルのチェックサムを作成する機能があります:
- MD2
- MD4
- MD5
- SHA1
- SHA256
- SHA384
- SHA512
それでは、どのように機能するか見てみましょう。
PowerShellまたはコマンドプロンプトを起動して、以下に示す構文を使用してファイルのチェックサムを計算します。
以下の例では、certutil.exe
はファイルC:\downloads\VSCodeUserSetup-x64-1.52.1.exeのSHA-256ハッシュを生成し、その結果をスクリーンショットで示しています。

certutil.exe
to create a file checksum.これで、certutil.exe
を使用してファイルのチェックサムを作成する方法を知りました。練習として、他の利用可能なすべてのアルゴリズムを使用してファイルのハッシュ値を生成してみてください。次に、Get-FileHash
とPowerShellを使用してファイルのハッシュを生成する方法を学びます。
ハッシュアルゴリズム(SHA-256など)は、SSL証明書を作成する際にも使用されることをご存知でしたか?
PowerShellのGet-FileHash
コマンドレットを使用してください
この記事の最初から、Windowsでファイルのチェックサムを作成するためのコマンドラインツールについて読んできました。さらに学ぶべきコマンドラインツールがあります。それはGet-FileHash
PowerShellコマンドレットです。
Get-FileHash
を使用する前に、利用可能なパラメータについての構文を以下に参照してください。対象のファイルを指定するためにPath
パラメータを使用し、どのハッシュアルゴリズムを使用するかを示すためにAlgorithm
パラメータを使用します。
Get-FileHash
で利用可能なハッシュアルゴリズムは以下の通りです。FCIVやCertUtilとは異なるハッシュアルゴリズムの選択肢があることに気付くでしょう。また、MD1やMD4などの古くて脆弱なアルゴリズムはもはや含まれていません。
- SHA1
- SHA256
- SHA384
- SHA512
- MACTripleDES
- MD5
- RIPEMD160
以下のコマンドは、SHA-256アルゴリズムを使用してファイルVSCodeUserSetup-x64-1.52.1.exeのハッシュ値を計算します。必要に応じてファイルパスを変更して、以下のコードをPowerShellでコピーして実行してください。
以下のスクリーンショットに示されているように、Get-FileHash
コマンドは、-Algorithm sha256
パラメータで指定された通りに、ファイルのSHA-256ハッシュを計算しました。

Get-FileHash
to compute the SHA-256 checksum of a file.異なるアルゴリズムを使用してファイルのチェックサムを計算したい場合は、Algorithm
パラメータの値を変更するだけで済みます。きっとGet-FileHash
を使用してファイルのSHA-512チェックサムを作成できると思います!
複数のファイルのハッシュを同時に生成する
Get-FileHash
を使用すると、複数のファイルのチェックサムを同時に生成することができます。以下の例のコードでは、ファイルパスのリストを$files
変数に格納しています。次に、Get-FileHash
は$files
変数を使用して各ファイルのSHA-256チェックサムを計算します。

Get-FileHash
to compute the hash values for each file stored in the $files
array.ファイルが含まれているフォルダのハッシュを生成する必要がある場合は、$files
配列を手動で作成する代わりに、Get-ChildItem
コマンドレットを使用して指定されたフォルダ内のファイルのリストを取得します。
以下のコマンドでは、Get-ChildItem
コマンドレットがc:\downloadsフォルダ内のファイルのリストを取得します。その結果はPowerShellパイプラインを介してGet-FileHash
コマンドレットに渡され、各ファイルのSHA-256ハッシュ値が計算されます。
ファイルのサイズによって、チェックサムの生成にかかる時間は異なります。この例では、8GBのISOファイルのチェックサムを計算するのに約20秒かかりました。結果は以下のスクリーンショットと似ているはずです。

Get-ChildItem
and Get-FileHash
to compute the hash values for each file in a folder.Windowsでサードパーティのツールを使用してファイルのチェックサムを作成する
Windowsの組み込みツールだけではファイルのチェックサムを生成するのに十分ではない場合、サードパーティのツールが利用できます。すべてのサードパーティのツールが無料ではありませんが、いくつかの無料で人気のあるユーティリティが以下に示されています。
7-Zip
コマンドラインの使用に飽きて、Windowsでファイルのチェックサムを作成するためのグラフィカルなツールをお探しですか? 7-Zipは、ファイルのハッシュ値を生成することができる人気のある無料のファイル圧縮ツールです。
コンピュータに7-Zipをインストールすると、ファイルのチェックサムを生成するためのコンテキストメニューオプションが自動的に追加されます。ファイルのハッシュ値を取得するには、次の手順に従ってください:
- チェックサムを生成するファイルを右クリックします。
- 利用可能なハッシュアルゴリズムをリストするために、CRC SHAメニューオプションを選択します。
- 最後に、使用したいハッシュアルゴリズムをクリックします。
以下の例では、アスタリスク(*)オプションがすべての利用可能なアルゴリズムを使用してファイルのハッシュ値を表示します。簡単ですね!

次に、7-Zipの代わりとして、複数のファイルのチェックサムを生成するHashMyFilesツールの使用方法を学びましょう!
HashMyFiles
コマンドラインや右クリックを忘れてください。 HashMyFiles は、ドラッグアンドドロップを使用して単一のファイル、複数のファイル、またはディレクトリ全体のチェックサムまたはハッシュ値を作成できます。
HashMyFilesプログラムを起動し、ハッシュを生成するためにファイルまたはフォルダをHashMyFilesのメインウィンドウにドラッグします。以下に示すように、メインウィンドウにはファイルと関連するハッシュがテーブル形式で表示され、詳細情報はプロパティウィンドウで利用できます。

さらに、HashMyFilesはハッシュまたはチェックサム値をHTMLレポートまたはタブ区切りファイルにエクスポートすることもできます。このエクスポート機能は、ファイルのチェックサム値の記録を保持したい場合に便利です。
次のステップ
この記事では、Windowsでファイルのチェックサムを作成するためのいくつかの方法を学びました。Microsoftには、certutil.exe
やGet-FileHash
などの組み込みのコマンドラインツールがあります。
また、無料で比較的簡単に使用できるサードパーティのツールもあります。ファイルのハッシュ値を生成するためのツールの選択に関係なく、ハッシュアルゴリズムごとにコンセプトと結果は同じです。
次は何ですか?おそらく、この記事で学んだツールのいずれかを使用して、重要なファイルのチェックサムインベントリを作成して、スクリプティングスキルを試してみることです。