web-dev-qa-db-ja.com

Sha1sum、Sha256sum、Md5sumの違い

Sha1sumSha256sumMd5sumの違いは何ですか?そして、いくつかのISOファイルについてこれらすべてをチェックする方法は?そして、ubuntuでmd5sum.txtファイルを作成する方法は?

10
Marko Blanka

それらのそれぞれの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を使用する方が適切です。 ISOを使用して、これらのハッシュの選択されたハッシュ(md5sum.txtsha1sum.txt、および/またはsha256sum.txt)が公開されており、一部のシステムではこれらのユーティリティのすべてを備えていない可能性があるという事実をよく見つける。

8
garethTheRed

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
1
Hauke Laging