什么是校验和(以及为什么要关心)?
校验和是用于检查数据是否有错误的数字和字母的序列。如果您知道原始文件的校验和,则可以使用校验和实用程序来确认您的副本相同。
校验和说明
要生成校验和,请运行一个程序,将该文件放入算法中。用于此的典型算法包括MD5,SHA-1,SHA-256和SHA-512。
该算法使用加密哈希函数,该函数接受输入并产生固定长度的字符串(数字和字母的序列)。输入文件可以是1 MB的小文件,也可以是4 GB的大文件,但是无论哪种方式,您最终都会得到相同长度的校验和。校验和也可以称为“哈希”。
文件中的细微变化会产生非常不同的校验和。例如,我们创建了两个几乎相同的不同文本文件,但是一个文本文件带有感叹号,另一个文本文件带有句点。在它们上运行Windows 10的内置校验和实用程序后,我们看到了截然不同的校验和。基础文件中的单个字符差异会产生非常不同的校验和。
当校验和有用时
您可以使用校验和检查文件和其他数据,以查看在传输或存储过程中发生的错误。例如,由于网络问题,文件可能未正确下载,或者硬盘驱动器问题可能导致磁盘上的文件损坏。
如果知道原始文件的校验和,则可以在其上运行校验和或哈希实用程序。如果结果校验和匹配,则说明您拥有的文件是相同的。
计算机使用校验和样式的技术在后台检查数据是否有问题,但是您也可以自己执行此操作。例如,Linux发行版通常提供校验和,因此您可以在将Linux ISO刻录到光盘或放入USB驱动器之前,先验证其是否已正确下载。您还可以使用校验和来验证从应用程序到文档和媒体的任何其他类型的文件的完整性。您只需要知道原始文件的校验和即可。
MD5,SHA-1和SHA-256和的区别是什么?
校验和是确保文件没有错误的有用方法。如果由于下载问题或硬盘驱动器问题而出现随机错误,则即使只是很小的错误,校验和的结果也会有所不同。
但是,这些加密哈希函数并不完美。安全研究人员发现与MD5和SHA-1功能存在“冲突”。换句话说,他们发现了两个不同的文件,它们产生相同的MD5或SHA-1哈希,但有所不同。
这不太可能通过随机机会发生,但是攻击者可以使用此技术将恶意文件伪装成合法文件。这就是为什么您不应该依赖MD5或SHA-1总数来验证文件是否真实的原因,而只是检查是否损坏。
还没有关于SHA-256冲突的报告,这就是为什么应用程序现在创建SHA-256和的原因,而不是MD5和SHA-1的原因。 SHA-256是一种更强大,更安全的算法。
不同的校验和算法会产生不同的结果。文件将具有不同的MD5,SHA-1和SHA–256校验和。如果您只知道原始文件的MD5总和,则必须计算副本的MD5总和以检查其是否匹配。
有关的:什么是破碎的? SHA-1碰撞攻击,解释了
如何计算校验和
如果您知道原始文件的校验和并希望在您的PC上进行检查,则可以轻松地进行此操作。 Windows,macOS和Linux都具有用于生成校验和的内置实用程序。您不需要任何第三方实用程序。
有关的:什么是MD5,SHA-1和SHA-256哈希值,如何检查它们?
在Windows上,PowerShell的 获取文件哈希
命令计算文件的校验和。要使用它,请首先打开PowerShell。在Windows 10上,右键单击“开始”按钮,然后选择“ Windows PowerShell”。您也可以通过在“开始”菜单中搜索“ PowerShell”并单击“ Windows PowerShell”快捷方式来启动它。
更新: Windows 10附带有Get-FileHash。但是,在Windows 7上,您必须安装PowerShell 4.0更新才能获取它。
在提示符下,键入 获取文件哈希
然后按空格键。
键入要为其计算校验和的文件的路径。或者,为了使事情变得容易,请将文件从“文件资源管理器”窗口拖放到PowerShell窗口以自动填写其路径。
按Enter键运行命令,您将看到该文件的SHA-256哈希值。根据文件大小和计算机存储速度的不同,此过程可能需要几秒钟。
如果您需要其他类型的校验和,请添加适当的 -算法
命令末尾的选项,如下所示:
Get-FileHash C:\ path \ to \ file.iso-算法MD5
Get-FileHash C:\ path \ to \ file.iso-算法SHA1
将计算出的校验和与原始校验和进行比较。您不必看起来太近,因为即使基础文件只有很小的差异,校验和也会有很大的差异。
如果校验和匹配,则文件相同。如果不是,那就有问题-可能是文件已损坏,或者您只是在比较两个不同的文件。如果您下载了该文件的副本,并且其校验和与预期的不符,请尝试再次下载该文件。