Powershell ファイルのハッシュ取得

シェアする

ファイルのダウンロードや、ファイルに変更があったのか確認のためハッシュ値を取得する場合のサンプルになります。 よく使われるハッシュアルゴリズムが変わっていっているので、とりあえずいくつか載せてあります。

$TargetPath = "C:\Temp\test.dat"

$MD5 = New-Object System.Security.Cryptography.MD5CryptoServiceProvider
$SHA1 = New-Object System.Security.Cryptography.SHA1CryptoServiceProvider
$SHA256 = New-Object System.Security.Cryptography.SHA256CryptoServiceProvider
$SHA512 = New-Object System.Security.Cryptography.SHA512CryptoServiceProvider

$Stream = [System.IO.File]::Open(`$TargetPath`,[System.IO.Filemode]::Open, [System.IO.FileAccess]::Read)

[System.BitConverter]::ToString($MD5.ComputeHash($Stream))
[System.BitConverter]::ToString($SHA1.ComputeHash($Stream))
[System.BitConverter]::ToString($SHA256.ComputeHash($Stream))
[System.BitConverter]::ToString($SHA512.ComputeHash($Stream))

$Stream.Close()

結果サンプル

MD5

E0-B5-50-FA-9B-7A-43-4B-74-BB-7B-B2-40-96-C2-A8

SHA1

DA-39-A3-EE-5E-6B-4B-0D-32-55-BF-EF-95-60-18-90-AF-D8-07-09

SHA256

E3-B0-C4-42-98-FC-1C-14-9A-FB-F4-C8-99-6F-B9-24-27-AE-41-E4-64-9B-93-4C-A4-95-99-1B-78-52-B8-55

SHA512

CF-83-E1-35-7E-EF-B8-BD-F1-54-28-50-D6-6D-80-07-D6-20-E4-05-0B-57-15-DC-83-F4-A9-21-D3-6C-E9-CE-47-D0-D1-3C-5D-85-F2-B0-FF-83-18-D2-87-7E-EC-2F-63-B9-31-BD-47-41-7A-81-A5-38-32-7A-F9-27-DA-3E

(SHA512は、長いですね)

検証環境

Windows 7 Powershell 4.0