【Linuxコマンド集】LinuxコマンドTweetPocketmd5sumはファイルのMD5アルゴリズムでのハッシュ値を計算するコマンドだ。sha1sumコマンドMDハッシュ値とはハッシュとは、ファイルやデータを数学的に圧縮したもので、内容が同じであれば同じ値になる。MD5アルゴリズムのハッシュ値は32個の16進数(128bit)で構成される文字列でほぼ無限の組み合わせと言える。ファイルの偽造防止などに使われる。ファイルやデータの中身が一つでも違うと全く違ったハッシュ値となる。keyboardの文字のMD5のハッシュ値はeca354126da76dab6eccd97933151e78で、keyboard1の文字のハッシュ値は7fdddc904f6929a0663da554ac69e6d3だ。ファイル名が違っても内容が同じであればハッシュ値は同じになる。一つのプログラムファイルをインターネットで公開したとしよう。悪意を持った人間が、そのファイルにウィルスを仕掛けた場合、MD5ハッシュ値は本来のものと全く違うものとなる。このことを応用して、ファイル公開時に別の方法でファイルを入手したユーザーにMD5ハッシュ値を知らせておけば、ユーザーがMD5ハッシュ値をチェックすれば入手経路のどこかで何らかの改変があっても気づくことができるのだ。使い方は、次のとおりだ。ファイル名ファイルga.txtのMD5ハッシュ値を計算する場合は、次のコマンドだ。ga.txtファイルga.txtのMD5ハッシュ値が計算され、結果とファイル名が表示された。複数のファイルを指定する場合は、空白で列挙することもできる。ファイル名にワイルドカードを指定するもこともできる。kなんとか.txtというファイル名すべてのMD5ハッシュ値を計算するコマンドは次の通りだ。k*.txtkなんとか.txtというファイル名すべてのMD5ハッシュ値が計算された。ファイルではなく、文字列データに関してもMD5ハッシュ値を計算できる。その場合は、コマンドmd5sumのみ入力し、Enterキーを押す。md5sumMD5ハッシュ値を知りたい文字列を入力する。最後にCtrl+Dのキーを押すと、その文字列のMD5ハッシュ値が表示される。後から詳細をご紹介するが、まずは一覧で見てみよう。-b(オプション--binary)ファイルをバイナリファイルとして扱う。-t(オプション--text)ファイルをテキストファイルとして扱う。-c(オプション--check)MD5ハッシュ値とファイルが一致しているかチェックする。--quiet一致しない場合のみ表示する。–status結果を表示しない。オプション-w(オプション—warn)結果を表示する。-bオプション(--binaryオプション):ファイルをバイナリファイルとして扱うファイルをバイナリファイルとして扱うオプションだ。Linuxシステムおいてはバイナリファイルとテキストファイルの区別をしていないため、テキストファイルに対し-bオプションを指定しても指定しない時の値と同じ値を出力する。バイナリファイルとテキストファイルに区別のあるOSにおいては、別のハッシュ値を出力する。Linuxシステムにおいては、明示的にバイナリファイルと指定する場合に利用するといいだろう。ハッシュ値を明示的にバイナリで計算する書式は次のとおりだ。ファイル名ファイル/bin/lsのMD5ハッシュ値をバイナリとして計算する場合は、次のコマンドだ。/bin/lsファイル/bin/lsのMD5ハッシュ値が計算された。-bオプションを付与した場合はファイル名の前に*が表示される。-tオプション(--textオプション):ファイルをテキストファイルとして扱うファイルをテキストファイルとして扱うオプションだ。Linuxシステムおいてはテキストファイルとバイナリファイルの区別をしていないため、バイナリファイルに対し-tオプションを指定しても指定しない時の値と同じ値を出力する。バイナリファイルとテキストファイルに区別のあるOSにおいては、別のハッシュ値を出力する。Linuxシステムにおいては、明示的にテキストファイルと指定する場合に利用するといいだろう。ハッシュ値を明示的にテキストで計算する書式は次のとおりだ。ファイル名ファイルga.txtのMD5ハッシュ値をテキストとして計算する場合は、次のコマンドだ。ga.txtファイルga.txtのMD5ハッシュ値が計算された。-cオプション(--checkオプション):MD5ハッシュ値とファイルが一致しているかチェックするmd5sumは、あらかじめ用意されたMD5ハッシュ値が対応するファイルと一致しているかチェックすることができる。-cオプションはチェックするオプションだ。チェックするには、MD5ハッシュ値とファイル名の対応の一覧表を作成しておく必要がある。一覧表は、MD5ハッシュ値とファイル名が空白を空けて記録されていればよい。簡単に一覧表を作成するには、md5sumコマンドで作成した内容をファイルにリダイレクトした内容でよい。チェックする場合は次の書式だ。一覧表checkに記載されているファイルとmd5ハッシュの組み合わせをチェックするには、次のコマンドだ。checkはじめにtなんとか.txtファイルすべてのMD5ハッシュ値を取得し、内容をファイルcheckに書き出す。そのファイルcheckの内容をチェックし、すべてのファイルのMD5ハッシュ値とファイルの組み合わせが合っていることがわかった。ファイルcheck内のファイルt4.txtのハッシュ値の一部を書き換え、同様にMD5ハッシュ値をチェックした。ファイルt4.txtのハッシュ値が一致しないので、FAILEDとなった。--quietオプション:一致しない場合のみ表示するチェック時に一致しない場合のみ表示するオプションで-cオプションと同時に使用する。一覧表ファイルcheckに記載されているファイルとmd5ハッシュの組み合わせをチェックし、一致しないもののみ表示するには、次のコマンドだ。check一覧表checkに記載されているファイルとmd5ハッシュの組み合わせをチェックし、一致しなかったファイルt4.txtがFAILEDで表示された。--statusオプション:結果を表示しないチェック時に結果を表示しないオプションで-cオプションと同時に使用する。一覧表ファイルcheckに記載されているファイルとmd5ハッシュの組み合わせをチェックするが結果を表示しない場合には、次のコマンドだ。check一覧表ファイルcheckに記載されているファイルとmd5ハッシュの組み合わせをチェックするが結果は表示しない。意味がない動作のように思われるが、md5sumの結果としての戻り値には値は戻ってきている。echoコマンドと組み合わせればその内容を確認できる。一覧表ファイルcに記載されているファイルとmd5ハッシュの組み合わせをチェックしその戻り値を確認するには次のコマンドだ。$?一覧表ファイルcに記録されているファイルとハッシュ値は一致している。一覧表ファイルcのハッシュ値を一部変更し、再度戻り値を確認してみる。md5sumコマンドの戻り値はチェックの結果、一致していれば0、一致していなければ0以外のエラーコードを出力する。このように—statusコマンドは、戻り値を参照し他の目的で活用する場合に利用する。-wオプション(—warnオプション):結果を表示する-cオプションだけを指定した時と同じく、すべての結果を表示する。明示的に結果をすべて表示し、チェックする場合は次の書式だ。明示的に結果をすべて表示し、一覧表checkに記載されているファイルとmd5ハッシュの組み合わせをチェックするには、次のコマンドだ。checkファイルt4.txtのハッシュ値が一致しないので、FAILEDとなった。md5sum関連コマンド最後にmd5sumコマンドに関連して、基本的なハッシュ値計算のコマンドも紹介しておくsha1sumコマンドsha1アルゴリズムでハッシュ値を計算する。まとめこのページでは、md5sumコマンドを使ったハッシュ値の計算の方法を解説した。ハッシュ値は、同じ内容で同じアルゴリズムであればどのコンピュータを使っても同じものが計算される。メールやWebを介してやり取りされたファイルの送信元でファイルのハッシュ値を計算し、別ルートで受信者にハッシュ値を教えておけば、正しくファイルが送られたかもチェックできる。圧縮ファイルに対してハッシュ値を計算して比較すれば、圧縮ファイル全体に変更がされているものか、同一のものかどうかのチェックができる。TweetPocketこのページの続きや関連ページは下記から一覧で確認できる。・「プログラマーとして転職をしたい!」という方はリナックスアカデミーの資料を見てみてください。短期間で未経験からエンジニアになることができるスクールとして15年間選ばれ続けてきた理由やノウハウが載った資料です。エンジニアの入り口に立つために必要な勉強や技術の最新動向、本当に使えるIT資格、学習に役立つ国からの奨励金などの情報が詰まっています。無料で2,3日中にお手元にお届けします。資料を見てみるSNSでもご購読できます。IT研修専門企業のリナックスアカデミーです。】エンジニアの入り口に立つために役立つようなコンテンツを日々ご提供していきます。講師や代表やスタッフ陣が毎日楽しく書いています。ご質問・ご指摘等はぜひコメントください。*メールアドレス(公開はされません。*次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。必要な勉強や技術の最新動向、本当に使えるIT資格、学習に役立つ国からの奨励金などの情報を無料でお届け資料を見てみる。