Sha1sum、Sha256sum 和 Md5sum 之间的区别

Sha1sum、Sha256sum 和 Md5sum 之间的区别

Sha1sum,Sha256sum和 有什么区别Md5sum?以及如何检查某些 iso 文件的所有这些?以及如何md5sum.txt在 ubuntu 中创建文件?

答案1

如果您查看每个内容的手册页,您会看到他们说:

md5sum - compute and check MD5 message digest

sha1sum - compute and check SHA1 message digest

sha256sum - compute and check SHA256 message digest

这告诉你他们都创建了一个信息摘要,这是一个单向函数,它将任意大小的数据作为参数并返回固定大小的哈希值。哈希被认为不可能(在实用范围内)反转并找到具有相同哈希的两个不同消息(称为冲突)。

三者之间的区别在于用于生成此哈希的算法。

MD5是在 20 世纪 90 年代初发明的,现在被认为是有缺陷和过时的。

SHA1也是在20世纪90年代初开发的。它被认为比 MD5 更强,但还不够强。目前,它的使用已从 X.509 数字证书的数字签名中撤回。

SHA256是目前推荐的哈希函数。

除非您有理由使用较弱的算法,否则 SHA256 是最佳选择。

要创建文本文件,只需将输出重定向到该文件即可。例如,如果您有要散列的 Ubuntu ISO 映像:

 md5sum Ubuntu.iso > md5sum.txt

当然,这也适用于其他变体。

然后,您可以(例如)通过 Internet 分发该文件,收件人可以使用以下命令再次检查哈希值:

md5sum Ubuntu.iso

这将打印 MD5 哈希值,收件人可以将其与md5sum.txt您将发布的文件的内容进行比较。如果它们相同,则文件未被篡改。

当然,使用起来会比使用sha256sum更好md5sum。您经常会发现通过 ISO 发布的这些哈希值的选择(md5sum.txtsha1sum.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文件,很有可能会发生冲突。

相关内容