【 sha1sum 】コマンド/【sha256sum 】コマンド――ダウンロードファイルを検証するLinux基本コマンドTips(160)

本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、ダウンロードファイルを検証する「sha1sum」コマンドと「sha256sum」コマンドです。

» 2017年11月16日 05時00分 公開
[西村めぐみ@IT]
「Linux基本コマンドTips」のインデックス

Linux基本コマンドTips一覧

 本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、ダウンロードファイルを検証する「sha1sum」コマンドと「sha256sum」コマンドです。

sha1sumコマンド、sha256sumコマンドとは?

 「sha1sum」コマンドと「sha256sum」コマンドは、ファイルをダウンロード(コピー)した後に、破損や改変がないことを確認するために使うコマンドです。ファイルを読み込み、ハッシュ値を表示、照合できます ※。

 ファイルのダウンロード元やメッセージの送信元があらかじめ、ファイルなどのハッシュ値を計算、公開している場合があります。受け手側であらためてハッシュ値を算出し、2つの値が一致していれば、正しく受信できたことになります。

 ハッシュ値は文字列やファイルの内容を基にして計算した値です。ハッシュ値を計算するハッシュ関数(SHA:Secure Hash Algorithm)にはさまざまな種類があり、sha1sumコマンドはSHA-1アルゴリズムに基づいて、160ビットのハッシュ値(40桁の16進数)を出力します。sha256sumコマンドはSHA-256を用いて、256ビット(64桁の16進数)を出力します。

※ ハッシュ値を「メッセージダイジェスト(message digest)」とも呼ぶ。古くはファイルの破損、改変がないことをチェックサム(checksum)という誤り検出能力の低い計算方法で確認していた。このため、ハッシュ値を「チェックサム」と呼ぶこともある。





sha1sumコマンドの書式

sha1sum [オプション] 対象ファイル (算出時)

sha1sum -c ファイル [オプション](照合時)

sha256sumコマンドの書式

sha256sum [オプション] 対象ファイル (算出時)

sha256sum -c ファイル [オプション] (照合時)

※[ ]は省略可能な引数を示しています。




sha1sumとsha256sumの主なオプション

短いオプション 長いオプション 意味
-b --binary バイナリモードで読み込む
-t --text テキストモードで読み込む(デフォルト)
-c ファイル --check ファイル ファイルからハッシュ値を読み込んで照合する(ファイル名として「-」を指定すると標準入力から読み込む:本文参照)

-c(--check)とともに使用するオプション

短いオプション 長いオプション 意味
--strict 無効な設定行がある場合は0以外で終了する
--quiet 照合が成功した場合はメッセージを表示しない
--status 何も出力しない(終了コードで結果を判別する)
-w --warn ファイルの書式が不正な場合に警告する


ファイルが正しくダウンロードできたかどうかを確認する

 ダウンロード元のサイトにSHA-1の値が掲載されている場合は「sha1sum 対象ファイル」で、SHA-256の値が掲載されている場合は「sha256sum 対象ファイル」を実行し、ハッシュ値が一致しているか確認します。

コマンド実行例

sha1sum 対象ファイル

sha256sum 対象ファイル


 以下では、CentOSのISOイメージファイルと、配布元が用意したSHA-256の値を収めたsha256sum.txtファイルをダウンロードして、値を表示しています(画面1)。ダウンロードにはwgetコマンドを使用しました。

画面1 画面1 ダウロードしたファイルのハッシュ値と配布元のハッシュ値を表示したところ


配布元が用意したファイルと値を照合する

 ハッシュ値を収めたファイルを入手できた場合、「sha1sum -c ファイル」または「sha256sum -c ファイル」と実行するだけで、ファイルを照合できます。目視で確認する必要がなくなるため、確実です。

コマンド実行例

sha1sum -c ファイル

sha256sum -c ファイル

(ハッシュ値が書かれたファイルを指定する)


 画面2では、先ほどダウンロードした「sha256sum.txt」を利用して、正しくダウンロードできているかどうか、確認しています。

画面2 画面2 配布元が用意したハッシュ値ファイルを用いて照合したところ

 今回使用した「sha256sum.txt」には、画面1で確認したように、同じ配布元からダウンロードできる他のISOイメージの値も書かれていました。そのため、「オープンまたは読み込みに失敗しました」というメッセージが表示されています。

 そこで、画面3のようにgrepコマンドを使って、照合したいファイル名が書かれている行を絞り込みました。これで対象ファイルだけを確認できます。「-c -」は標準入力からハッシュ値を読み込むという意味です。

画面3 画面3 ダウンロードしたファイルだけを検証したところ

 なお、ダウンロードが中断した、通信エラーが生じた、などの理由で正しくファイルをダウンロードできていない場合は、「失敗」と表示されます(画面4)。

画面4 画面4 ファイルの検証に失敗したところ


筆者紹介

西村 めぐみ(にしむら めぐみ)

PC-9801NからのDOSユーザー。PC-486DX時代にDOS版UNIX-like toolsを経てLinuxへ。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『はじめてでもわかるSQLとデータ設計』『シェルの基本テクニック』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。


Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。