ファイルをダウンロードするとき、特にWebサイトからファイルをインストールするときは、ダウンロードが有効であることを確認することをお勧めします。 Webサイトでは、ダウンロードが正しく完了したことを確認するために、各ファイルのハッシュ値が表示されることがよくあります。この記事では、ダウンロードの検証に使用できるmd5sumツールについて説明します。他の3つのユーティリティ、sha1sum、sha256sum、およびsha512sumは、md5sumと同じように機能します。
Linuxmd5sumコマンド
md5sumコマンドは、MD5アルゴリズムを使用して、指定されたファイルの32文字(128ビット)のチェックサムを出力します。このコマンドラインツールのコマンド構文は次のとおりです。
md5sum [OPTION]... [FILE]...
そして、md5sumのマニュアルページで説明されているのは次のとおりです。
Print or check MD5 (128-bit) checksums.
次のQ&Aスタイルの例は、md5sumの基本的な使用法をさらによく理解するのに役立ちます。
注:file1.txt、file2.txt、file3.txtという名前の3つのファイルを使用します。例の入力ファイルとして。各ファイルのテキストは以下のとおりです。
file1.txt:
hi hello how are you thanks.
file2.txt:
hi hello to you I am fine Your welcome!
file3.txt:
hallo Guten Tag Wie geht es dir Danke.
Q1。ハッシュ値を表示する方法は?
オプションなしでコマンドを使用して、ハッシュ値とファイル名を表示します。
md5sum file1.txt
このコマンドがシステムで生成した出力は次のとおりです。
[Documents]$ md5sum file1.txt 1ff38cc592c4c5d0c8e3ca38be8f1eb1 file1.txt [Documents]$
--tagオプションを使用して、出力をBSDスタイルの形式で表示することもできます。
md5sum --tag file1.txt
[Documents]$ md5sum --tag file1.txt MD5 (file1.txt) = 1ff38cc592c4c5d0c8e3ca38be8f1eb1 [Documents]$
Q2。複数のファイルを検証する方法は?
md5sumコマンドは、一度に複数のファイルを検証できます。機能を示すために、file2.txtとfile3.txtを追加します。
ハッシュをファイルに書き込む場合、そのファイルを使用して、ファイルのいずれかが変更されているかどうかを確認できます。ここでは、ファイルのハッシュをファイルハッシュに書き込み、それを使用して、どのファイルも変更されていないことを検証しています。
md5sum file1.txt file2.txt file3.txt > hashes
md5sum --check hashes
[Documents]$ md5sum file1.txt file2.txt file3.txt > hashes [Documents]$ md5sum --check hashes file1.txt: OK file2.txt: OK file3.txt: OK [Documents]$
次に、file3.txtを変更し、ファイルの最後に感嘆符を1つ追加して、コマンドを再実行します。
echo "!" >> file3.txt
md5sum --check hashes
[Documents]$ md5sum --check hashes file1.txt: OK file2.txt: OK file3.txt: FAILED md5sum: WARNING: 1 computed checksum did NOT match [Documents]$と一致しませんでした
file3.txtが変更されていることがわかります。
Q3。変更されたファイルのみを表示するにはどうすればよいですか?
チェックするファイルが多い場合は、変更されたファイルのみを表示することをお勧めします。 「--quiet」オプションを使用すると、md5sumは変更されたファイルのみを一覧表示します。
md5sum --quiet --check hashes
[Documents]$ md5sum --quiet --check hashes file3.txt: FAILED md5sum: WARNING: 1 computed checksum did NOT match [Documents]$と一致しませんでした
Q4。スクリプトの変更を検出する方法は?
スクリプトでmd5sumを使用することをお勧めします。 「--status」オプションを使用すると、md5sumは出力を出力しません。代わりに、ステータスコードは、変更がない場合は0を返し、ファイルが一致しない場合は1を返します。次のスクリプトhashes.shは、ファイルが変更されているため、ステータスコードに1を返します。スクリプトファイルは次のとおりです。
sh hashes.sh
hashes.sh: #!/bin/bash md5sum --status --check hashes Result=$? echo "File check status is: $Result" exit $Result [Documents]$ sh hashes.sh File check status is: 1 [[email protected] Documents]$
Q5。無効なハッシュ値を特定する方法は?
md5sumは、ファイルを比較するときに無効なハッシュがあるかどうかを通知できます。ハッシュ値が正しくない場合に警告するには、-warnオプションを使用できます。この最後の例では、sedを使用して3行目の先頭に余分な文字を挿入します。これにより、ファイルハッシュのハッシュ値が変更され、無効になります。
sed -i '3s/.*/a&/' hashes
md5sum --warn --check hashes
これは、3行目に無効なハッシュがあることを示しています。
[Documents]$ sed -i '3s/.*/a&/' hashes [Documents]$ md5sum --warn --check hashes file1.txt: OK file2.txt: OK md5sum: hashes: 3: improperly formatted MD5 checksum line md5sum: WARNING: 1 line is improperly formatted [Documents]$
md5sumは、1つまたは複数のファイルをすばやく検証して、それらのファイルのいずれかが元のファイルから変更されているかどうかを判断できる単純なコマンドです。 md5sumの詳細については、そのマニュアルページを参照してください。