Sha1sum、Sha256sum、Md5sumの違い

Sha1sum、Sha256sum、Md5sumの違い

Sha1sumSha256sum違いは何ですかMd5sum?一部のisoファイルについてこれらすべてを確認するには?md5sum.txtUbuntuでファイルを作成する方法は?

答え1

それぞれのマニュアルページを見ると、次のような内容を見ることができます。

md5sum - compute and check MD5 message digest

sha1sum - compute and check SHA1 message digest

sha256sum - compute and check SHA256 message digest

これは彼らがすべて情報のまとめは、すべてのサイズのデータ​​をパラメータとして使用し、固定サイズのハッシュ値を返す一方向関数です。ハッシュは(実際の範囲内で)同じハッシュを使用する2つの異なるメッセージを反転して見つけることは不可能であると考えられます(衝突と呼ばれます)。

3つの違いは、このハッシュを生成するために使用されるアルゴリズムです。

MD51990年代初頭に発明され、現在は欠陥があり、時代に遅れていると考えられています。

SHA11990年代初頭にも開発された。 MD5より強いと見なされますが、十分に強力ではありません。現在、X.509デジタル証明書を使用したデジタル署名では、その使用は撤回されました。

SHA256現在推奨されているハッシュ関数です。

弱いアルゴリズムを使用する理由がない場合は、SHA256が最良の選択です。

テキストファイルを作成するには、出力をファイルにリダイレクトするだけです。たとえば、ハッシュしたいUbuntu ISOイメージがある場合:

 md5sum Ubuntu.iso > md5sum.txt

もちろん、これは他の変形にも当てはまる。

その後、(たとえば)インターネットを介してファイルを配布でき、受信者は以下を使用してハッシュを再確認できます。

md5sum Ubuntu.iso

md5sum.txtこれにより、受信者が公開するファイルの内容と比較できるMD5ハッシュが印刷されます。同じであれば、ファイルは改ざんされていません。

もちろん、使用するよりも使用する方がsha256sum良いですmd5sum。一部のシステムでは、これらのユーティリティがすべて存在しないことを説明するために、ISO(および/または)を介してmd5sum.txt展開sha1sum.txtされたこれらのハッシュ選択を見つけることがよくあります。sha256sum.txt

答え2

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

答え3

md5sumはsha256sumより約3倍高速です。 (HDD読み取り速度は約150MB/s)

[#25#wangx@windows:系统盘] $ ll manjaro-xfce-19.0.2-200303-linux54.iso -h
-rwxrwxrwx 1 wangx wangx 2.6G Mar  5  2020 manjaro-xfce-19.0.2-200303-linux54.iso*
[#26#wangx@windows:系统盘] $ time md5sum manjaro-xfce-19.0.2-200303-linux54.iso
bc1207cbb099fa07a089aa9e1afaf82d  manjaro-xfce-19.0.2-200303-linux54.iso

real    0m5.468s
user    0m4.547s
sys     0m0.891s
[#27#wangx@windows:系统盘] $ time sha256sum manjaro-xfce-19.0.2-200303-linux54.iso
ce49445ae48667389a70bf4f5247634520e0ed81a3d09f6ff64db0a6970a1123  manjaro-xfce-19.0.2-200303-linux54.iso

real    0m14.490s
user    0m13.453s
sys     0m0.969s
[#28#wangx@windows:系统盘] $ time md5sum manjaro-xfce-19.0.2-200303-linux54.iso
bc1207cbb099fa07a089aa9e1afaf82d  manjaro-xfce-19.0.2-200303-linux54.iso

real    0m5.438s
user    0m4.344s
sys     0m1.047s
[#29#wangx@windows:系统盘] $

md5sum は短いため、2**64 = 18446744073709551616ファイルが複数ある場合に競合が発生する可能性が高くなります。

関連情報