什么是MD5,SHA-1和SHA-256哈希,以及如何检查它们?

在互联网旅行期间,有时您会看到MD5,SHA-1或SHA-256哈希显示在下载的旁边,但不知道它们是什么。 这些看似随机的文本字符串允许您验证下载的文件没有损坏或篡改。 您可以使用Windows,macOS和Linux中内置的命令来实现此目的。

哈希是如何工作的,以及如何将它们用于数据验证

哈希是用于产生字符串的加密算法的产物。 通常这些字符串具有固定长度,而不考虑输入数据的大小。 看看上面的图表,你会看到“狐狸”和“红狐狸跳过蓝狗”产生相同的长度输出。

现在将图表中的第二个例子与第三,第四和第五个比较。 你会看到,尽管输入数据有一个非常小的变化,生成的哈希值彼此非常不同。 即使有人修改了一小段输入数据,哈希值也会发生巨大变化。

MD5,SHA-1和SHA-256都是不同的散列函数。 软件创建者经常采用文件下载 - 例如Linux .iso文件,甚至Windows .exe文件 - 并通过哈希函数运行它。 然后他们在他们的网站上提供一个哈希的官方列表。

这样,你可以下载文件,然后运行哈希函数,以确认你有真正的原始文件,它在下载过程中没有被破坏或恶意篡改。 正如我们上面所看到的,即使文件的一个小的改变将会大大改变哈希。

如果您有来自非正式来源的文件,并且您想要确认它是合法的,这些也可以是有用的。 让我们说你有一个Linux .ISO文件,你从某个地方,你想确认它没有被篡改。 您可以在Linux发行版的网站上在线查找该特定ISO文件的哈希值。 然后,您可以通过计算机上的哈希函数运行它,并确认它匹配您期望它具有的哈希值。 这确认您所拥有的文件是在Linux发行版网站上提供的完全相同的文件,无需任何修改。

如何比较任何操作系统上的哈希函数

考虑到这一点,让我们来看看如何检查您下载的文件的哈希,并将其与给定的文件进行比较。 这里有Windows,macOS和Linux的方法。 如果在同一个文件上使用相同的散列函数,散列将总是相同的。 使用哪个操作系统无关紧要。

视窗

由于PowerShell,此过程可能在Windows上没有任何第三方软件。

要开始,请通过在“开始”菜单中启动“Windows PowerShell”快捷方式来打开PowerShell窗口。

运行以下命令,用“C:\ path \ to \ file.iso”替换要查看其哈希的任何文件的路径:

  Get-FileHash C:\ path \ to \ file.iso 

生成文件的哈希值需要一些时间,具体取决于文件的大小,您使用的算法以及文件所在驱动器的速度。

默认情况下,命令将显示一个文件的SHA-256哈希值。 但是,如果需要MD5,SHA-1或其他类型的散列,则可以指定要使用的散列算法。

运行以下命令之一以指定不同的散列算法:

  Get-FileHash C:\ path \ to \ file.iso -Algorithm MD5 
  Get-FileHash C:\ path \ to \ file.iso -Algorithm SHA1 
  Get-FileHash C:\ path \ to \ file.iso -Algorithm SHA256 
  Get-FileHash C:\ path \ to \ file.iso -Algorithm SHA384 
  Get-FileHash C:\ path \ to \ file.iso -Algorithm SHA512 
  Get-FileHash C:\ path \ to \ file.iso -Algorithm MACTripleDES 
  Get-FileHash C:\ path \ to \ file.iso -Algorithm RIPEMD160 

将散列函数的结果与预期看到的结果进行比较。 如果它是相同的值,该文件没有被损坏,篡改或以其他方式从原来的改变。

img_5894fdde80f06

macOS

macOS包括用于查看不同类型的散列的命令。 要访问它们,请启动终端窗口。 您可以在Finder>应用程序>实用程序>终端中找到它。

md5命令显示文件的MD5哈希值:

  md5 / path / to / file 

默认情况下, shasum命令显示文件的SHA-1散列。 这意味着以下命令是相同的:

  shasum / path / to / file 
  shasum -a 1 / path / to / file 

要显示文件的SHA-256哈希值,请运行以下命令:

  shasum -a 256 / path / to / file 

Linux

在Linux上,访问终端并运行以下命令之一以查看文件的哈希值,具体取决于要查看的哈希类型:

  md5sum / path / to / file 
  sha1sum / path / to / file 
  sha256sum / path / to / file 

一些哈希是加密签名的更安全

虽然哈希可以帮助您确认文件没有被篡改,但仍有一个攻击的方式在这里。 攻击者可以获得对Linux发行版网站的控制权,修改出现在其上的哈希值,或者攻击者可以执行中间人攻击并修改运行中的网页,如果您通过HTTP访问网站,而不是加密HTTPS

这就是为什么现代Linux发行版经常提供的网页上列出的哈希值。 他们加密签名这些哈希,以帮助保护攻击者可能尝试修改哈希。 如果您想要绝对确保哈希和文件未被篡改,您将需要验证加密签名以确保哈希文件实际上由Linux发行版签名。

验证加密签名是一个更复杂的过程。 阅读我们的指南,验证Linux ISO没有被篡改完整的说明。

图片来源: Jorge Stolfi / Wikimedia

什么是MD5和SHA-1哈希,以及如何检查它们?

banner-01

在互联网旅行期间,您可能已经看到下载附近列出的MD5哈希值,但它们是什么? 让我们来看看这些隐藏的字符串是什么,以及如何使用它们来验证您的下载。

什么是哈希和他们使用什么?

500px-Cryptographic_Hash_Function.svg

(图片来源: 维基共享资源

哈希,“摘要”是加密算法的产物。 如果你不知道的算法是什么,一定要看看我们的文章对它们是什么以及它们如何工作 简而言之,它们是计算机用来操纵数据的一组指令。 许多散列函数被设计为产生固定长度的摘要,而不管输入数据的大小。 看看上面的图表,你会看到“狐狸”和“红狐狸跳过蓝狗”产生相同的长度输出。

另一个因素是复杂性。 将上图中的第二个示例与第三,第四和第五个示例进行比较。 你会看到,尽管输入数据有一个非常小的变化,产生的散列彼此非常不同。 这是算法的复杂性的标志(至少对于我们的非程序员眼睛),并且帮助使得从散列到数据的向后工作是非常困难的。 由于这个原因,密码通常存储为哈希值; 在登录尝试期间容易获取密码,并将其与存储的散列进行比较。 另一方面,如果有人有哈希,很难反向到原始输入。 当人们试图破解密码时,他们通常不会倒退,而是使用已知散列(通常是常见的密码和密钥模式)的字典来比较被盗的密码。

数据验证

sshot-1

MD5,消息摘要算法,已经在过去的多种类型的基于安全的程序中使用,但它也广泛用于另一个目的:数据验证。 这些类型的算法非常适合验证您的下载。 试想一下,如果你愿意,你在网上试图抓住从最新的Ubuntu版本的BitTorrent 一些可怕的麻烦制作者开始分发.iso你需要的版本,但是嵌入了恶意代码。 不仅如此,他聪明,所以他确保文件是完全相同的大小。 你不会知道你有坏的文件,直到你试图启动CD,然后,永久损坏可能已经发生!

sshot-2

值得庆幸的是我们,规范岗位MD5校验其图像在线。 您可以使用任何数量的工具自己运行散列检查,然后针对已发布的校验和进行检查。 如果有任何差异,您知道您的文件被篡改,没有正确完成,或其他东西阻止数据匹配。 这样,您可以防止在运行任何系统之前对系统造成任何损坏,您只需重新下载相应的文件即可。

这不仅适用于Linux发行版,而且适用于其他一些东西,如BIOS文件,第三方Android ROM和路由器固件 - 如果数据被污染,所有这些都可能会“污染”你的设备。 通常,大文件具有更大的数据损坏风险,因此,如果您的存档很重要,您可能需要运行自己的校验和。

MD5不再被认为是完全安全的,所以人们已经开始迁移到其他常用的哈希算法,如SHA-1。 这最后一个特别是用于数据验证越来越经常,所以大多数工具将与这两个算法工作。

通过命令行计算文件散列

Linux和OS X

当你下载文件时,你会看到在网站上列出的校验和。 但是你怎么比较自己呢?

Linux发行版将内置此功能。 只需弹出打开终端并输入以下命令:

md5sum path / to / file.iso

我使用.iso的例子,但你可以得到任何时间的文件的哈希。

如果你在Mac上,可以打开Terminal.app并使用:

md5 path / to / file.7z

在上述两个命令中将“md5”替换为“sha1”,以检查SHA-1散列。

视窗

Windows没有内置的工具来检查哈希,但Microsoft确实提供了一个从他们的网站。

Microsoft文件校验和完整性验证程序实用程序

一旦下载并解压缩文件(没有安装),打开命令提示符窗口。 导航到文件的位置,然后使用以下命令检查MD5哈希值:

fciv.exe C:\ path \ to \ file.bin

FCIV默认检查MD5,但它也可以检查SHA-1哈希:

fciv.exe -sha1 C:\ path \ to \ file.zip

基于GUI的检查哈希值的工具

如果你是在Windows或OS X,你不喜欢使用命令行,有一个非常好的图形实用程序,你可以使用称为HashTab。

头部到的HashTab网页 ,下载的应用程序,并安装它。

现在,只需右键单击您的文件,然后转到属性。

sshot-3

您会看到一个新的“Hash”标签。

sshot-4

您的计算机将自动开始计算三个默认哈希:CRC32,MD5和SHA-1。

sshot-5

如果您单击设置链接,您可以自定义显示的哈希值。 有很多选择!

sshot-6


如你所见,检查下载有很多好处,特别是对于固件镜像等。 现在你知道如何处理在线查找的校验和,你可以轻松休息。

有最喜欢的哈希算法? 找到校验和用于一个真正奇怪的目的? 爱密码学? 在评论中分享您的想法!

赞 (2)
分享到:更多 ()