我如何检查下载的校验和以及为什么要这样做?

我如何检查下载的校验和以及为什么要这样做?

我的记忆力不是很好,但我记得五六年前,当我下载一些软件包时,网页上的下载图标下从来没有一行校验和。也没有“检查校验和”的说明来确保你的下载是正确的。现在这些东西到处都是。我对它们有两个疑问(无论是 MD5 还是其他什么)。

  1. 它们什么时候开始变得如此流行,为什么会被使用?我的意思是,如果我从服务器 X 下载包,那么服务器必须确保它给我正确的包(无论如何,我认为是这样)。

  2. 您如何检查校验和?通常我会下载软件包并立即安装。也许这很愚蠢。

答案1

它们是什么时候开始变得如此流行的以及为什么人们会使用它们?

我无法告诉你什么时候,但它们的使用至少有两个很好的理由。

1. 文件完整性

下载大型二进制文件时,您无法确保传输过程中不会出现任何位错误。这可能是由于各种原因造成的,从服务器将文件发送到您的计算机,再将其保存在驱动器上。您不能假设每次传输都是无错误的。

如果您使用此文件在计算机上安装某些东西,它可能会传播这个单一错误,直到程序无缘无故崩溃。

另一种常见情况是:您下载 ISO 文件并将其刻录到 DVD 并安装 Linux。在安装过程中,安装程序发现磁盘上有一个损坏的文件。这可能是由于下载过程中发生的单比特错误造成的。

2. 您自己的安全

如果你知道某个文件的校验和,而你下载了另一个与该校验和不匹配的文件,那么要么是文件有错误(见上文),要么有人想欺骗你

想象一下著名软件经销商的下载网站被劫持。尽管这种情况可能并不常见,但还是值得考虑安全问题。


如何检查校验和?

取决于使用的校验和方法。可以使用md5sha1sum命令在任何 *nix 系统上轻松检查 MD5 和 SHA 校验和。在 Windows 上有一个文件校验和完整性验证器

通常我会下载软件包然后立即安装。也许这很愚蠢。

无论如何,您都可以下载并安装它。通常,安装程序应检查所包含的数据是否无错误且完整。您可以尝试使用十六进制编辑器从可执行安装程序中删除单个字节,看看它是否仍然完成。我几乎不怀疑这一点。

总而言之,没有必要验证校验和(我从来没有这样做过),但如果你有时间的话,这也不会有什么坏处。

答案2

这是一个额外的安全层,以确保下载是完整的,并且下载链接或源没有以某种方式被劫持,因此您下载的应用程序副本已被修改,例如插入了病毒负载。

在网上搜索“Windows md5”会找到大量免费的 MD5 检查器。是否检查 MD5 总和取决于您自己。

答案3

校验和是根据文件或任何给定输入的所有位计算得出的固定长度值。源文件发生微小变化时,校验和的值就会发生巨大变化,这使得校验和成为检查文件完整性的理想选择。如果您计算出的下载文件校验和与页面上给出的校验和相符,则可以确保下载的文件完好无损。

在 Windows 下,你可以使用以下方法轻松检查 MD5 值MD5夏季。一般来说,除非我下载的文件极其重要,否则我不会费心检查校验和。

答案4

其中一个主要用例是分发软件。例如,一些流行的软件(如 Apache 软件基金会的软件)使用镜像站点进行分发。将有多个镜像站点可供下载软件。在这种情况下,原始 Apache 站点上提供的校验和/哈希可用于验证下载的软件是否确实相同。镜像站点可以由任何人创建,而不一定是由原始创建者创建的。在这种情况下,校验和是验证从第三方站点下载的好方法。

相关内容