このエントリーをはてなブックマークに追加


PowerShellでファイルのハッシュ値を確認する方法

Windowsのコマンドプロンプトには、Linuxにはある md5sum, sha1sum, shasum コマンドがなく、ハッシュ値を調べるコマンドがありませんでした。
PowerShell v4から Get-FileHash コマンドレットが提供されたので、このコマンドレットで簡単にファイルのハッシュ値を確認できるようになりました。
(Cygwinを使うという手もありますが…)

以下にGet-FileHashの使用例を記します。
Windows10を使用し動作確認を行いました。


参考資料

Microsoft Developer Network

Get-FileHash を使ってみる。

Get-FileHashを使ってみます。

PostgreSQLのtarballをダウンロードしてハッシュ値を取得してみます。

01.png
 

上記のスクリーンショットを見ると、tarball(tar.gz)の他に.md5, .sha256があるのが確認できます。
.md5, .sha256には、今回 Get-FileHash で算出するハッシュ値が格納されています。
この値を確認することにより、ファイルが壊れずダウンロードできていることを確認したり、改ざんされていないかを確認することができます。

Get-FileHash ファイル名

ファイル名のみ指定したときの出力です。
SHA256のハッシュ値が表示されていいます。

PS E:\work> dir


    ディレクトリ: E:\work


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       2016/11/27     13:55       25172850 postgresql-9.6.1.tar.gz


PS E:\work> Get-FileHash .\postgresql-9.6.1.tar.gz

Algorithm       Hash                                                                   Path
---------       ----                                                                   ----
SHA256          B85275DA86E23981591865CE184EA5911F77506888215B334929B818EB6BFB61       E:\work\postgresql-9.6.1.tar.gz

ちなみにLinuxなどのコマンドの場合は、英字は小文字になります。

$ sha256sum postgresql-9.6.1.tar.gz
b85275da86e23981591865ce184ea5911f77506888215b334929b818eb6bfb61 *postgresql-9.6.1.tar.gz

なので、比較するのであれば、小文字に変換するtoLoewr()を呼び出せばよいでしょう。

PS E:\work> (Get-FileHash .\postgresql-9.6.1.tar.gz).Hash.toLower()
b85275da86e23981591865ce184ea5911f77506888215b334929b818eb6bfb61

アルゴリズムを指定する

使用できるアルゴリズムは、Get-FileHashのドキュメントを参照してください。

以下、SHA256, MD5を使用してみます。
構文は以下のようになります。

Get-FileHash -Algorithm アルゴリズム ファイル名

以下、実行例です

PS E:\work> Get-FileHash -Algorithm md5 .\postgresql-9.6.1.tar.gz

Algorithm       Hash                                                                   Path
---------       ----                                                                   ----
MD5             EAA7E267E89EA1ED2693D2B88D3CD290                                       E:\work\postgresql-9.6.1.tar.gz


PS E:\work> Get-FileHash -Algorithm sha256 .\postgresql-9.6.1.tar.gz

Algorithm       Hash                                                                   Path
---------       ----                                                                   ----
SHA256          B85275DA86E23981591865CE184EA5911F77506888215B334929B818EB6BFB61       E:\work\postgresql-9.6.1.tar.gz

以上、PowerShellでファイルのハッシュ値を確認することができる Get-FileHash の使用例でした。



添付ファイル: file01.png 1825件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-11-27 (日) 14:22:09