什么是校验和(以及为什么要关心)?

校验和是一系列数字和字母,用于检查数据是否有错误。 如果您知道原始文件的校验和,则可以使用校验和实用程序来确认您的副本是否相同。

校验和解释

要生成校验和,请运行一个程序,通过算法放置该文件。 用于此的典型算法包括MD5,SHA-1,SHA-256和SHA-512。

该算法使用加密散列函数,该函数接受输入并产生固定长度的字符串(数字和字母序列)。 输入文件可以是1 MB的小文件或4 GB的大文件,但无论哪种方式,您最终都会得到相同长度的校验和。 校验和也可称为“哈希”。

文件中的小变化会产生截然不同的校验和。 例如,我们创建了两个几乎相同的不同文本文件,但其中一个有感叹号,另一个有句点。 在对它们运行Windows 10的内置校验和实用程序之后,我们看到了非常不同的校验和。 底层文件中的单个字符差异会产生非常不同的校验和。

当校验和很有用时

您可以使用校验和来检查文件和其他数据,以查找传输或存储期间发生的错误。 例如,由于网络问题,文件可能未正确下载,或者硬盘驱动器问题可能导致磁盘上的文件损坏。

如果您知道原始文件的校验和,则可以在其上运行校验和或散列实用程序。 如果生成的校验和匹配,则您知道您拥有的文件是相同的。

计算机使用校验和样式技术在后台检查数据是否存在问题,但您也可以自己执行此操作。 例如, Linux发行版通常提供校验和,因此您可以在将其刻录到光盘或将其放在USB驱动器上之前验证Linux ISO是否已正确下载。 您还可以使用校验和来验证任何其他类型文件的完整性,从应用程序到文档和媒体。 您只需要知道原始文件的校验和。

MD5,SHA-1和SHA-256之和有什么区别?

校验和是确保文件没有错误的有用方法。 如果由于下载问题或硬盘驱动器问题而发生随机错误,则生成的校验和将不同,即使它只是一个小错误。

但是,这些加密哈希函数并不完美。 安全研究人员发现了与MD5SHA-1功能的“ 冲突 ”。 换句话说,他们发现了两个产生相同MD5或SHA-1哈希的不同文件,但它们是不同的。

这不太可能通过随机机会发生,但攻击者可以使用此技术将恶意文件伪装成合法文件。 这就是为什么你不应该依赖MD5或SHA-1总和来验证文件是否真实 - 只是为了检查是否存在损坏。

还没有任何关于SHA-256冲突的报告,这就是应用程序现在创建SHA-256总和而不是MD5总和和SHA-1总和的原因。 SHA-256是一种更强大,更安全的算法。

不同的校验和算法产生不同的结果。 文件将具有不同的MD5,SHA-1和SHA-256校验和。 如果您只知道原始文件的MD5总和,则必须计算副本的MD5总和以检查它是否匹配。

相关: 什么是Shattered? SHA-1碰撞攻击,解释

如何计算校验和

如果您知道原始文件的校验和并希望在PC上进行检查,则可以轻松完成。 Windows,macOS和Linux都具有用于生成校验和的内置实用程序 您不需要任何第三方实用程序。

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

在Windows上,PowerShell的Get-FileHash命令计算文件的校验和。 要使用它,首先打开PowerShell。 在Windows 10上,右键单击“开始”按钮并选择“Windows PowerShell”。您还可以通过在“开始”菜单中搜索“PowerShell”并单击“Windows PowerShell”快捷方式来启动它。

在提示符下,键入Get-FileHash ,然后按空格键。

键入要为其计算校验和的文件的路径。 或者,为了简化操作,将文件从“文件资源管理器”窗口拖放到PowerShell窗口以自动填充其路径。

按Enter键运行该命令,您将看到该文件的SHA-256哈希值。 根据文件的大小和计算机存储的速度,此过程可能需要几秒钟。

如果需要其他类型的校验和,请在命令末尾添加相应的-Algorithm选项,如下所示:

  Get-FileHash C:\ path \ to \ file.iso -Algorithm MD5 
  Get-FileHash C:\ path \ to \ file.iso -Algorithm SHA1 

将计算的校验和与原始校验和进行比较。 你不应该看得太近,因为即使在底层文件中只有微小的差别,校验和也会有很大的差异。

如果校验和匹配,则文件是相同的。 如果没有,则存在问题 - 可能是文件已损坏,或者您只是比较两个不同的文件。 如果您下载了该文件的副本且其校验和与您的预期不符,请尝试再次下载该文件。

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