チェックサム プログラムは、ファイルからチェックサム キー文字列を生成し、後でそのチェックサム文字列を使用してファイルの整合性を検証するために使用されます。ファイルは、ネットワークまたは任意のストレージ メディアを介してさまざまな宛先に配布される場合があります。多くの理由により、さまざまな理由でデータ転送中にいくつかのビットが欠落しているためにファイルが破損する可能性があります.これらのエラーは、インターネットからのファイルのダウンロード中、ネットワーク経由の転送中、CD-ROM の損傷中などに最も頻繁に発生します。
したがって、何らかのテストを適用して、受信したファイルが正しいファイルであるかどうかを知る必要があります。このファイル整合性テストに使用される特別なキー文字列は、チェックサム と呼ばれます .最も有名で広く使用されているチェックサム手法は md5sum です .
md5sum の計算
1. まず、ファイルの md5sum を計算する必要があります。端末に md5 チェックサムを出力するには、md5sum コマンドの後にファイル名を指定します。
# md5sum file dcf21e3a1a0181294bceae07ec16a9d9 file
md5sum は、与えられた 32 文字の 16 進文字列です。
2. 以下に示すように、md5sum をファイルにリダイレクトすることもできます。
# md5sum file > hash.md5
3. 同じコマンドを使用して、複数のファイルの md5sum ハッシュを作成することもできます。
# md5sum file1 file2 file3
md5 チェックサムによるファイルの整合性の検証
1. 端末に出力された英数字文字列が、ファイルで提供された md5 ハッシュと一致することを確認します。ファイルから md5 チェックサムを検証する。
# md5sum -c hash.md5 file: OK
プログラムはコンソールにファイル名を出力し、検証されれば OK を表示します。ファイルの形式は次のとおりです:ハッシュ (2 つのスペース) ファイル名.
# vim hash.md5 dcf21e3a1a0181294bceae07ec16a9d9 file
2. ファイルのチェックサムが失敗した場合、以下に示すような出力が得られます。
$ md5sum -c hash.md5 file: FAILED
ディレクトリ内のすべてのファイルのチェックサムを再帰的にチェックする方法
あるディレクトリ内のすべてのファイル/サブディレクトリのチェックサムをチェックしたいとします。 md5sum ユーティリティには再帰オプションがありません。心配しないでください。ここで使用できる小さなトリックがあります。
1. find と md5sum を組み合わせて md5sum リストを作成できます。例:
# find [DirectoryName] -type f -exec md5sum {} \; > ~/md5sum.txt
上記のコマンドを使用すると、あるディレクトリ内のすべてのファイルの md5sum リストを作成できます。
2. 確認するには、次のようにします:
# md5sum --check md5sum.txt > result.txt
ディレクトリのチェックサムを計算するための md5deep
通常、チェックサムはファイルに対して計算されます。ただし、ディレクトリでそれらを計算する場合は、ディレクトリ内のすべてのファイルのチェックサムを再帰的に計算する必要があります。これは、「md5deep」ユーティリティによって簡単に実現できます。たとえば、ディレクトリの md5sum を計算します。
# md5deep -rl /path/to/directory > directory.md5
ここで、
-r – 再帰的な md5sum 機能を提供します
-l – は相対パスに使用されます。デフォルトでは、出力に絶対ファイル パスを書き込みます。