検索
連載

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

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

Share
Tweet
LINE
Hatena
「Linux基本コマンドTips」のインデックス

Linux基本コマンドTips一覧

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

md5sumコマンドとは?

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

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

 ハッシュ値は文字列やファイルの内容を基にして計算した値です。ハッシュ値を計算するハッシュ関数にはさまざまな種類があり、md5sumコマンドはMD5アルゴリズム(Message Digest Algorithm 5)に基づいて、128ビットのハッシュ値(32桁の16進数)を出力します ※2。

 なお、現在はより安全性が高い方式を用いているsha256sumコマンド(連載第160回)の使用が推奨されています。使用方法はmd5sumと共通です。

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



md5sumコマンドの書式

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

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

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




md5sumの主なオプション

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

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

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


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

 ダウンロード元のサイトにMD5の値が掲載されている場合、「md5sum 対象ファイル」で一致しているか確認します。

コマンド実行例

md5sum 対象ファイル


 以下では、Oracle VM VirtualBox(VirtualBox)のインストール用パッケージと、MD5の値が書かれている「MD5SUMS」というファイルをダウンロードして、値を比較しています ※3。ダウンロードにはwgetコマンドを使用しています。

 VirtualBoxのMD5SUMSファイルには40本近いファイルの値が書かれているため、「grep ダウンロードしたファイルの名前 MD5SUMS」で絞り込み表示をした後に、md5sumコマンドの実行結果を表示。一致しているかどうかを確認しました。

 照合の方法についてはsha256sumコマンドを参照してください。コマンドの使用方法は共通です。

※3 Oracle VM VirtualBoxは、Oracleが開発、公開する仮想化ソフトウェア。LinuxなどのOSをインストールして、他のOS上で利用できる(VirtualBox関連のWebサイト



図1
図1 ファイルをダウンロード後、md5sumコマンドを用いて検証したところ ※4

※4 CentOSの場合、「grep」に対しデフォルトで「grep --color=auto」というエイリアスが設定されている。このためgrepの出力の一部が赤字で表示された。





筆者紹介

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

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.

ページトップに戻る