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.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
文件,很有可能会发生冲突。