Windows10でダウンロードしたファイルのハッシュ値を確認する方法

Windows10でダウンロードしたファイルのハッシュ値を確認する方法 PC

ネットでダウンロードしたフリーソフトやアプリ、ドライバーなどが改ざんされていないか?や、正常にダウンロード出来たか?などをファイルのハッシュ値(hash value)をcertutilコマンドで計算して確認する方法です。

Windowsのコマンドプロンプトで簡単にハッシュ値を計算して確認できるので、セキュリティを高めるために是非活用しましょう。

ハッシュ値とは

ハッシュ値(hash value)とは0と1で構成されるデジタルデータを一定の法則(アルゴリズム)で同じ長さに不可逆的に短縮した16進数の数値のことです。

ハッシュ値の16進数の数値は、元のデジタルデータが同じ場合は同じ値が算出されますが、元のデータに1バイトでも違いがある場合は全く違う値となります。

このことを利用してファイルの改ざんや、複数のファイルの同一性のチェックに利用されます。

日常の利用方法としては以下のようなケースがあります。

  • プログラムを公開する作者が、プログラムの改ざんやダウンロード失敗によるインストールエラーを防ぐためにハッシュ値をダウンロードサイトに表示する。
  • プログラム利用者が正常にダウンロードできたかハッシュ値で確認する。
  • プログラム利用者が、作者のサイトから直接ダウンロードしたファイルと、ネット上の他のダウンロードサイトからダウンロードしたファイルなど、複数の入手経路でダウンロードしたファイルの同一確認に利用する。

ハッシュ値の計算方法

※ここではダウンロードフォルダにダウンロードした「free-soft-v1.0-x64.msi」というファイルのハッシュ値(SHA1)を計算する例で解説します。
※Windows10の場合、ハッシュアルゴリズムを指定しない場合はデフォルトの「SHA1」となります。

ドラッグ&ドロップでハッシュ値を確認する方法(オススメ)

デスクトップの左下の検索画面に「cmd」と入力してEnterキーでコマンドプロンプトを開きます。

コマンドプロンプトを起動

コマンドプロンプトに「certutil -hashfile 」と入力します。※最後のスペースを忘れずに。

コマンドプロンプトに「certutil -hashfile 」と入力

ダウンロードフォルダの「free-soft-v1.0-x64.msi」をコマンドプロンプト内にドラッグ&ドロップします。

ファイルをコマンドプロンプトにドラッグ&ドロップ
コマンドプロンプトにドラッグ&ドロップしてファイルのパスが入力される

これでEnterキーを押せばファイルのハッシュ値が表示されます。

ファイルのハッシュ値が表示される

この値を正常なハッシュ値と見比べてファイルの整合性を確認しましょう。

全て手動で入力する場合

デスクトップの左下の検索画面に「cmd」と入力してEnterキーでコマンドプロンプトを開きます。

コマンドプロンプト起動

cd %USERPROFILE%\Downloads でダウンロードフォルダに移動します。

cdでダウンロードフォルダに移動

dir コマンドでダウンロードフォルダのファイル一覧を表示してファイルを確認します。

dirでダウンロードフォルダのファイル一覧を表示

certutil -hashfile」で「free-soft-v1.0-x64.msi」のハッシュ値(SHA1)を取得します。

certutilでハッシュ値(SHA1)を取得

ハッシュ値が取得できました。

【※備考】
同名ファイルを複数回ダウンロードした際や、コピーした際などでファイル名に空白が入っている場合(例:[free-soft-v1.0-x64 (1).msi]、[free-soft-v1.0-x64 – コピー.msi]等)は、ファイル名を「"」(ダブルクォーテーション)で囲んで指定します。
【例】
certutil -hashfile "free-soft-v1.0-x64 (1).msi"
certutil -hashfile "free-soft-v1.0-x64 - コピー.msi"

利用できるハッシュアルゴリズム

以下の書式で利用するアルゴリズムを指定することができます。
※Windows10の場合、ハッシュアルゴリズムを指定しない場合のデフォルトは「SHA1」となります。

【MD5の例】certutil -hashfile C:\temp\free-soft.msi MD5

以下のアルゴリズムが指定可能です。

  • MD2
  • MD4
  • MD5
  • SHA1(※デフォルト)
  • SHA256
  • SHA384
  • SHA512

Powershellの場合

ちなみにPowershellの場合は、
Get-FileHash ファイル名 -Algorithm ハッシュアルゴリズム名
でハッシュ値を取得できます。

Linuxの場合

Linuxの場合は以下のコマンドです。

以上で解決です。

タイトルとURLをコピーしました