什么是校验和?

校验和示例,用例和计算器

校验和是对一段数据(通常是单个文件)运行算法(称为加密哈希函数 )的结果。 通过将您从文件版本生成的校验和与文件源提供的校验和进行比较,可以帮助确保您的文件副本是真正的,没有错误的。

校验和有时也被称为散列和,并且通常不是散列值散列码或简单地散列

一个简单的校验和例子

校验和或加密散列函数的想法可能看起来很复杂,不值得付出努力,但我们想说服你,否则! 校验和真的不是很难理解或创建。

让我们从一个简单的例子开始,希望展示校验和的力量来证明某些事情已经发生了变化。 以下短语的MD5校验和是表示该句子的一长串字符。

这是一个测试。 120EA8A25E5D487BF68B5F7096440019

就我们这里的目的而言,它们基本上是相等的。 然而,即使只是稍微改变一点,也会产生完全不同的校验和:

这是一个测试CE114E4501D2F4E2DCEA3E17B546F339

正如你所看到的,即使文件中的微小变化也会产生一个截然不同的校验和,清楚地表明一个不像另一个。

校验和用例

比方说,像一个图形编辑器一样,您可以每天使用的程序下载一个重大更新,比如Service Pack 。 这可能是一个非常大的文件,需要几分钟或更长时间才能下载。

一旦下载,你怎么知道文件正确下载? 如果在下载过程中丢失了几位数据,并且现在计算机上的文件与预期的不完全相同,该怎么办? 将更新应用于与开发人员创建方式不完全相同的程序很可能会导致严重问题。

这是比较校验和可以让你放心的地方。 假设您下载文件的网站提供校验和数据以及要下载的文件,然后可以使用校验和计算器(请参阅下面的校验和计算器 )从您下载的文件中生成校验和。

例如,假设网站为您下载的文件提供了校验和MD5:5a828ca5302b19ae8c7a66149f3e1e98 。 然后,您可以使用自己的校验和计算器在计算机上的文件中使用相同的加密散列函数(本例中为MD5)生成校验和。 校验和是否匹配? 大! 你可以非常确信这两个文件是相同的。

校验和不匹配? 这可能意味着任何事情,有人已经用不知道的东西代替了恶意下载,出于某种原因,比如您打开并更改了文件,或者网络连接中断,文件没有完成下载等。 尝试再次下载文件,然后在新文件上创建新校验和,然后再次进行比较。

校验和对于验证从原始源以外的地方下载的文件实际上是否是有效的文件并且没有被恶意或其他方式从原始文件进行更改也非常有用。 只需比较您创建的哈希与文件源中可用的哈希。

校验和计算器

校验和计算器是用来计算校验和的工具。 有很多校验和计算器,每个都支持一组不同的加密散列函数。

一个很好的免费校验和计算器是Microsoft File Checksum Integrity Verifier,简称fciv 。 Fciv仅支持MD5SHA-1加密哈希函数,但这些目前是最受欢迎的。

有关完整教程,请参阅如何使用FCIV验证Windows中的文件完整性 。 Microsoft File Checksum Integrity Verifier是一个命令行程序,但非常易于使用。

另一个优秀的Windows免费校验和计算器是IgorWare Hasher,它是完全便携的,所以你不必安装任何东西。 如果你不熟悉命令行工具,这个程序可能是一个更好的选择。 它支持MD5和SHA-1以及CRC32。 您可以使用IgorWare Hasher来查找文本和文件的校验和。

JDigest是一个开源的校验和计算器,可以在Windows以及macOS和Linux上运行。

注意:由于并非所有校验和计算器都支持所有可能的加密散列函数,因此请确保您选择使用的校验和计算器支持散列函数,该散列函数会生成伴随您下载的文件的校验和。