回答:
それらのそれぞれのmanページを見ると、それらが言うことがわかります:
md5sum - compute and check MD5 message digest
sha1sum - compute and check SHA1 message digest
sha256sum - compute and check SHA256 message digest
これにより、すべてがメッセージダイジェストを作成することがわかります。これは、任意のサイズのデータを引数として取り、固定サイズのハッシュを返す一方向関数です。ハッシュは(実用性の範囲内で)反転して、同じハッシュを持つ2つの異なるメッセージを見つけること(衝突と呼ばれます)は不可能と見なされます。
3つの違いは、このハッシュの生成に使用されるアルゴリズムです。
MD5は1990年代初頭に発明され、欠陥があり廃止されたと見なされています。
SHA1も1990年代初頭に開発されました。MD5よりも強いと考えられていますが、十分ではありません。その使用は現在、X.509デジタル証明書のデジタル署名から撤回されています。
SHA256は現在推奨されているハッシュ関数です。
弱いアルゴリズムを使用する理由がない限り、SHA256が適しています。
テキストファイルを作成するには、出力をファイルにリダイレクトするだけです。たとえば、ハッシュ化したいUbuntu ISOイメージがある場合:
md5sum Ubuntu.iso > md5sum.txt
もちろん、これは他のバリアントでも機能します。
次に、(たとえば)そのファイルをインターネット経由で配布し、受信者は次のコマンドでハッシュを再度確認できます。
md5sum Ubuntu.iso
これにより、受信者がmd5sum.txt
公開するファイルの内容と比較できるMD5ハッシュが出力されます。それらが同じである場合、ファイルは改ざんされていません。
もちろん、それを使用する方がよいでしょうsha256sum
よりmd5sum
。あなたは、多くの場合、公表され、これらのハッシュの選択を見つける(だろうmd5sum.txt
、sha1sum.txt
および/またはsha256sum.txt
いくつかのシステムでは、これらのユーティリティのすべてを持っていないかもしれないという事実を可能にするためにISOで)。
MD5、SHA-1、SHA-256は異なるハッシュ関数(ダイジェスト)です。アルゴリズムと出力サイズの両方が異なります。
大きなファイルをチェックすると、ファイルを何度も読み取る必要がなくなるため、プロセスを高速化できます。一般的なアプローチは
mkfifo md5 sha1 sha256
md5sum md5 >md5.txt &
sha1sum sha1 >sha1.txt &
sha256sum sha256 >sha256.txt &
zsh -c 'setopt MULTIOS; cat input >md5 >sha1 >sha256'
ただし、この場合、複数のダイジェストを同時に計算するプログラムがあるため、より簡単です。
gpg --print-mds input
gpg --print-mds <file1 >digest.1; gpg --print-mds <file2 >digest.2
anfを使用して次に比較digest.1
することができますdigest.2