#navi(../) * PowerShellでファイルのハッシュ値を確認する方法 [#i95371a7] Windowsのコマンドプロンプトには、Linuxにはある md5sum, sha1sum, shasum コマンドがなく、ハッシュ値を調べるコマンドがありませんでした。~ PowerShell v4から ''Get-FileHash'' コマンドレットが提供されたので、このコマンドレットで簡単にファイルのハッシュ値を確認できるようになりました。~ (Cygwinを使うという手もありますが…) 以下に''Get-FileHash''の使用例を記します。~ Windows10を使用し動作確認を行いました。 #contents #htmlinsertpcsp(win-top.html,win-sp.html) * 参考資料 [#mf70e43a] Microsoft Developer Network -[[Get-FileHash>https://msdn.microsoft.com/powershell/reference/5.1/microsoft.powershell.utility/Get-FileHash]] * Get-FileHash を使ってみる。 [#f1e8af4c] Get-FileHashを使ってみます。~ PostgreSQLのtarballをダウンロードしてハッシュ値を取得してみます。 #ref(01.png) #br 上記のスクリーンショットを見ると、tarball(tar.gz)の他に.md5, .sha256があるのが確認できます。~ .md5, .sha256には、今回 ''Get-FileHash'' で算出するハッシュ値が格納されています。~ この値を確認することにより、ファイルが壊れずダウンロードできていることを確認したり、改ざんされていないかを確認することができます。 ** Get-FileHash ファイル名 [#s6df7402] ファイル名のみ指定したときの出力です。~ 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 ** アルゴリズムを指定する [#b65559c0] 使用できるアルゴリズムは、[[Get-FileHashのドキュメント>https://msdn.microsoft.com/powershell/reference/5.1/microsoft.powershell.utility/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 の使用例でした。 #htmlinsertpcsp(win-btm.html,win-sp.html)