Sha1sum、Sha256sum、Md5sumの違い


回答:


8

それらのそれぞれの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.txtsha1sum.txtおよび/またはsha256sum.txtいくつかのシステムでは、これらのユーティリティのすべてを持っていないかもしれないという事実を可能にするためにISOで)。


1

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の使用は素晴らしいですが、どのように使用して異なるファイルを比較できますか?
Herman Toothrot

1
@ user4050 gpg --print-mds <file1 >digest.1; gpg --print-mds <file2 >digest.2anfを使用して次に比較digest.1することができますdigest.2
Hauke Laging
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.