SHA256ハッシュの確認方法(Windows)
SHA256ハッシュはファイルの指紋のようなものです。ダウンロードしたファイルのハッシュが公開されている値と一致すれば、改変やダウンロードエラーのない、公開されたとおりのファイルを手にしていることになります。
PowerShellでハッシュを求める
Get-FileHashはWindowsに標準で入っています。ダウンロードしたファイルがあるフォルダーで実行してください。既定のアルゴリズムはSHA256です。
Get-FileHash .\vlc-3.0.21-win64.exe -Algorithm SHA256コマンドプロンプトで求める
どのバージョンのWindowsにもあるcertutilでも同じ値が小文字で表示されます(古いWindowsではバイトごとに空白が入ります)。
certutil -hashfile vlc-3.0.21-win64.exe SHA256自動で照合する
公開されているハッシュを引用符の中に貼り付けます。大文字・小文字は区別されず、一致すればTrueと表示されます。
(Get-FileHash .\vlc-3.0.21-win64.exe).Hash -eq "公開されているSHA256ハッシュ"一致しない場合
そのファイルは公開されたものとは別物です。ダウンロードが途中で切れた、プロキシが内容を書き換えた、あるいは開発元が同じURLのファイルを差し替えた、のいずれかです。実行せず、公式のURLからダウンロードし直してください。それでも一致しない場合は開発元がファイルを変更した可能性が高く、マニフェストは今後更新されます。
デジタル署名もあわせて確認する
ハッシュはファイルが改変されていないことを、署名は誰が公開したかを示します。PowerShellのGet-AuthenticodeSignatureで署名者と署名が有効かどうかを確認できます。エクスプローラーでは[プロパティ]→[デジタル署名]タブです。
Get-AuthenticodeSignature .\vlc-3.0.21-win64.exe | Format-List Status, SignerCertificateよくある質問
ハッシュが一致すればマルウェアは含まれていないということですか?
いいえ。パッケージデータに記載されたファイルと同じであることを示すだけです。中身を確認するには、ファイルをスキャンするか、VirusTotalでハッシュを検索してください。ExeAtlasではすべてのインストーラーにその検索へのリンクを付けています。
SHA256はMD5やSHA1より優れていますか?
はい。MD5とSHA1は意図的に偽造できますが、SHA256は現在の技術では偽造できません。wingetがSHA256を使うのはそのためです。