菜鸟笔记
提升您的技术认知

校验和checksum、哈希值是什么?

校验和、哈希值是什么?

校验和checksum是对一组数据(通常是一个文件)进行算法-加密哈希函数运算得到的结果。通过比较你手头文件和原始文件的校验和,能够确保你对原始文件的拷贝是真的并且不存在错误。

校验和通常也被称之为哈希值哈希和哈希码,或简称为哈希hash

Krzysztof Zmij / E+ / Getty Images

校验和的简单示例

校验和加密哈希函数的概念听起来似乎很复杂,也不值得关注,但我们建议你关注它。校验和实际上没有那么难以理解,也没有那么难生成。

我们以一组简单的示例开始,希望能展示校验和的魅力,让它没那么令人生畏。下面这个短语的MD5校验和是一长串字符,这串字符代表了这个短语。

为了达到目的,下面这个短语和上面的基本一样。但是我们做了点改变:删除了句号。哪怕只是这一点点改变,校验和就完全不一样了。

就像你看到的,仅仅是文件中一点细微的改变,就会产生完全不一样的校验和,通过比对校验和,你可以清晰地只这是两个不同的文件。

校验和的使用

假如你下载了一个软件的更新补丁。这个补丁可能是个大文件需要好长时间才能下载完毕。

一旦下载完毕,你怎么知道你下载的文件是正确的?如果在下载过程中遗失了几个bit的数据,或者你下载的文件根本就不是软件方想要提供的正确文件该怎么办?如果更新软件的补丁根本不是软件开发者提供的,这绝对会给你造成巨大的麻烦。

这就是校验和让你放心的地方:假设提供下载软件的网站,在下载文件的旁边附上校验和数据,之后你能通过校验和计算器(查看下方有关校验和计算器)得到下载文件的校验和

例如,网站上提供的下载文件的MD5校验和:5a828ca5302b19ae8c7a66149f3e1e98。之后你便可以用使用相同的加密哈希算法-在这个例子中是MD5,在自己的校验和计算上,得到已下载文件的校验和。这两个校验和是一样的吗?如果是一样的,你就可以百分百确认,这两个文件是一模一样的。

校验和不一致?这可能意味着有人在你不知情的情况下用恶意文件替换了原有的下载文件,或是你自己不小心打开修改了下载文件,或是网络连接中断导致文件没有下载完整(译者注:这种情况还蛮普遍的)。试试重新下载之后,再计算一次新文件的校验和进行比对。

校验和也用于:验证从非官方途径下载的文件是否有效并且没有被恶意替换。只需要比较你下载文件与源文件的hash

校验和计算器

校验和计算器是一种用来计算校验和的工具。市面上有非常多校验和计算器,每一种都支持不同的加密哈希函数组合。

一个知名的免费校验和计算器是 Microsoft File Checksum Integrity Verifier,简称FCIVFCIV 仅支持MD5SHA-1加密哈希算法,但这两个是目前为止最流行的。

可以参见以下FCIV的完整教程 how to verify file integrity in Windows with FCIV ,FCIV是一个命令行工具,但是非常简单易用。

其他Windows的免费校验和计算器还有 IgorWare Hasher,它非常方便不需要额外安装任何东西。如果你不习惯使用命令行工具,这个工具会更好,它支持MD5SHA-1CRC32加密哈希算法.你可以用IgorWare Hasher得到文本或文件的校验和。

JDigest是一个跨平台,适用于Windows、macOS和Linux的开源校验计算器。

Note:一个校验和计算器不一定支持所有可能的加密哈希算法,在选择校验和计算器时,要注意它是否支持你想要下载的文件旁标注的加密哈希算法类型,以进行正确的比对。

译者注

在linux中,经常使用md5sum 命令来获取文件的MD5哈希值/校验和

md5sum test.txt