"md5sum"和"sha256sum"之间有什么区别?

为什么我们需要使用两种工具来验证ISO,是否有特定的事项需要考虑?
4个回答

简短回答:对于验证ISO镜像文件,实际上没有太大的区别,您可以使用任意一种,只要您信任提供校验和的来源即可。MD5过去是标准,但计算机界正在向着采用SHA算法发展,因为它更先进和“更好”适应未来;因此,通常也会提供SHA校验和作为选择。
  • md5sumsha256sum是分别实现MD5和SHA-256哈希算法的程序。
  • 一般来说,哈希算法接受任意长度的输入,并对其进行数学计算,生成一个相对较小且固定长度的输出,称为“哈希”(或“校验和”)。
  • 验证数据完整性(例如ISO文件)只是哈希的众多用途之一。
  • 较旧的MD5和较新的SHA-256哈希之间的主要区别在于,MD5产生128位输出,而SHA-256产生256位输出。
  • 为了使数据(ISO文件)的验证工作正常进行,数据的哈希必须是唯一的,这样就不会有其他数据产生相同的MD5校验和或SHA-256校验和。
    • 理论上讲,这是可能的,即两组输入数据产生相同的输出哈希,称为“碰撞”。
    • 与MD5相比,SHA-256的碰撞几率较低,因为它的256位哈希值是MD5的128位哈希值的两倍大小。
    • 实际上,即使使用MD5验证ISO文件,由于ISO文件的大小超过100 MB,发生碰撞的几率也是零。
  • 然而,由于计算机世界正在向SHA迈进,因为它是未来的一种较新且“更好”的哈希算法,ISO文件的校验和通常以多种格式提供。

6就记录而言,说SHA只是“更新和‘更好’”有些误导。由于产生碰撞非常容易(这也使其在验证ISO方面可能不太有用),MD5被认为在密码学上完全不安全。MD5不应再被用于任何事情,无论如何。维基百科页面对目前MD5存在的问题进行了很好的总结。 - chazomaticus

如何进行SHA256 SUM页面

程序sha256sum旨在使用SHA-256(具有256位摘要长度的SHA-2系列)验证数据完整性。正确使用的SHA-256哈希可以确认文件的完整性和真实性。SHA-256与Ubuntu推荐的先前算法MD5类似,但更不容易受到攻击。就安全性而言,诸如SHA-256之类的加密哈希允许对从不安全镜像获取的数据进行身份验证。

如何进行MD5SUM页面

程序md5sum旨在使用MD5(消息摘要算法5)128位加密哈希来验证数据完整性。正确使用MD5哈希可以确认文件的完整性和真实性。MD5哈希必须经过签名或来自您信任的组织的安全来源(HTTPS页面)。尽管发现了MD5算法的安全漏洞,但在您信任生产它们的组织时,MD5哈希仍然很有用。
基本上,这是一个安全关注的措施。如果您使用非官方镜像下载ISO文件,则可能同时使用两者来确保文件的完整性。

除了使用md5sum验证外,还可以使用上述所述的sha1和sha256校验和。

假设你从releases网站下载或者通过种子下载最新的ISO文件,比如Raring。请注意,在顶部有一个名为SHA1SUMS的文件,以及一个SHA256SUMS文件,每个文件都有一个长数字对应每个.iso文件。

一旦你完成了.iso文件的下载,你可以计算其sha1或sha256校验和来确保它与SHA1SUMS文件中的值相匹配。你可以使用rhash来进行这个操作。

首先要安装它。如果是在Ubuntu上:

sudo apt-get install rhash

对于其他操作系统,您可以在这里下载。

然后计算您下载的文件的SHA1或SHA256校验和。例如,对于我下载的ubuntu-13.04-desktop-amd64.iso

$ rhash --sha1 ubuntu-13.04-desktop-amd64.iso
ffed440f1dc1b43d9c170bd21e5ff669a59447f8  ubuntu-13.04-desktop-amd64.iso
$
$ rhash --sha256 ubuntu-13.04-desktop-amd64.iso
b4b20e0293c2305e83a60c605d39cabf43115794d574c68f1492d49fee0ab3d8  ubuntu-13.04-desktop-amd64.iso
$ 

值分别与SHA1SUMSSHA256SUMS文件中的值匹配,验证下载。
您还可以运行rhash --md5 ubuntu-13.04-desktop-amd64.iso并与MD5SUMS文件进行比较。

MD5和SHA-2是不同的哈希算法。由开发人员决定使用什么作为检查数据完整性的简便方法。

在这种情况下,它们被用来“实现”相同的目标,但结果(哈希值)完全不同。