☰
Windows文件校验:CertUtil与Get-FileHash命令实战用法
2026/10/1 8:53:10 网站建设 项目流程

写这篇东西的起因很简单:我下载了一个几个G的数据库安装包,官网给了长长一串SHA256校验值。我习惯性地想找个校验工具,结果搜到的软件要么弹广告,要么装完发现是全家桶。后来一查才想起来,Windows系统本身就一直带着文件校验的命令,根本不用装第三方工具——一个叫CertUtil,一个叫Get-FileHash,前者是老牌选手,后者是PowerShell里的后起之秀。今天就把这两个命令怎么用、有什么区别、实战中怎么避坑一次说清楚,保证你看完就能用上。

这两个命令能做什么?简单说就是计算文件的哈希值。哈希值就像文件的“数字指纹”,文件内容只要有一个字节变了,哈希值就会完全不一样。所以校验文件是否完整、有没有被篡改、下载是否出错,全靠它。适合谁看?经常下载安装包、传大文件、玩开源软件、做系统部署的,都值得花三分钟搞清楚。

1. 为什么要用系统自带命令做文件校验

很多人的第一反应是“校验文件?下个软件不就行了”。我在早期也是这么干的,但用了几次第三方工具之后,就彻底放弃了。原因很现实:

第一是安全风险。文件校验工具本身就是你从网上下载来验证其他文件的,这就有个“先有鸡还是先有蛋”的悖论——你怎么知道你下载的校验工具是安全的?不少哈希校验工具确实干净,但也确实有一些捆绑了推广软件,甚至有些小众工具会偷偷上传你的文件信息。用系统自带的命令就完全没这个问题,CertUtil和Get-FileHash是微软官方内置的,不存在“下载工具”这一步,自然也就少了一个可能被攻击的环节。

第二是适用性。第三方工具很多是图形界面,看起来友好,但到了服务器上——尤其是Windows Server那种只有命令行界面的环境,图形工具根本用不了。而且服务器上你还不能随便装软件,万一是个内网环境、没有外网,想装个校验工具都费劲。系统自带命令这时候就成了唯一的选择。

第三是效率。熟练之后,命令行校验比打开图形界面、点按钮、找文件要快得多。尤其是批量校验多个文件时,写个for循环一下就搞定,图形工具反而一个个点累死人。

哈希校验本身的原理也不复杂。哈希算法(比如MD5、SHA-1、SHA-256)会把任意长度的文件内容通过数学变换,算出一串固定长度的字符串。这串字符串有几个特性:确定性(同一个文件每次算出来都一样)、单向性(从哈希值推不出原始内容)、雪崩效应(文件内容改一个字符,哈希值完全变样)。平时我们说的“SHA256校验”,就是拿官方公布的哈希值和本地计算出的哈希值做对比,两者一致就说明文件是完整无误的。

选择用哪个算法也有讲究。MD5和SHA-1目前都存在碰撞攻击的可能性,也就是说理论上可以构造出两个不同内容但哈希值相同的文件,所以安全性要求高的场景不建议用。SHA-256目前依然是主流且安全的,除非是校验老旧的软件包(有些老项目只提供MD5),否则我都推荐优先用SHA-256。

2. CertUtil命令详解

CertUtil大家可能有点陌生,但它其实是个“老资格”。它本来是Windows用来管理证书服务的命令行工具,功能很丰富,其中有一个子命令就是-hashfile,可以用来计算文件的哈希值。因为几乎所有的Windows系统都预装了它,所以知名度不高但实际使用率很高。

2.1 CertUtil基础语法

CertUtil校验文件的基本语法特别简单:

certutil -hashfile "文件路径" 算法

其中“算法”是可选的,不写的话默认计算MD5。常见可用的算法有MD5、SHA1、SHA256、SHA384、SHA512等。

来看几个实际例子:

# 计算文件的MD5 certutil -hashfile "C:\Downloads\setup.exe" MD5 # 计算文件的SHA256 certutil -hashfile "C:\Downloads\setup.exe" SHA256 # 计算文件的SHA512 certutil -hashfile "D:\backup\data.zip" SHA512

注意:文件路径如果包含空格,一定要加双引号。另外CertUtil的算法参数不区分大小写,写md5和MD5效果一样。

2.2 CertUtil实际输出效果

执行certutil命令后,输出是分三行显示的(我这里用实际文件名演示):

C:\>certutil -hashfile "C:\Downloads\ubuntu-22.04-desktop-amd64.iso" SHA256 SHA256 的 C:\Downloads\ubuntu-22.04-desktop-amd64.iso 的哈希: a4b8a4e6d0e3d2f4a8b9c7d6e5f4a3b2c1d0e9f8a7b6c5d4e3f2a1b0c9d8e7f6 CertUtil: -hashfile 命令成功完成。

中间那行就是哈希值。CertUtil输出的格式有个小特点:它会自动把哈希值拆成每行两个字符一组显示,如果你看到的哈希值很长,可能显示为多行。这其实是个坑点,后面我会专门说到。

2.3 CertUtil的局限与使用技巧

CertUtil最大的局限就是输出格式不友好。一方面它会输出三行内容,夹杂着“命令成功完成”这种提示信息;另一方面它没有复制按钮(在命令行窗口里复制比较麻烦),而且哈希值如果太长还会自动换行,直接复制去对比很不方便。

解决办法是使用命令行重定向,把结果输出到文件里,再打开文件来对比:

certutil -hashfile "C:\Downloads\setup.exe" SHA256 > hash.txt

这样hash.txt里就只保留了命令输出的内容。不过照样还是那三行格式,没有只留哈希值的参数。

另一个非常关键的技巧:CertUtil是Windows自带的工具,默认就在系统PATH里,所以在CMD和PowerShell里都能直接调用。但有个特殊情况——如果你把文件路径写成了相对路径(就是不带盘符、不带完整目录的路径),建议还是先cd到文件所在目录再执行,否则可能出现找不到文件的报错。

CertUtil的老版本有个已知问题:带中文路径或中文文件名时,偶尔会出现编码错误,导致计算失败或者结果异常。这种情况一般切换成Get-FileHash就好,PowerShell对Unicode路径的支持要完善得多。

2.4 用CertUtil批量校验多个文件

为了弥补CertUtil单文件计算的低效,可以用for循环来批量处理。比如当前目录下有一堆.iso文件,要一次性全部算SHA256:

for %i in (*.iso) do certutil -hashfile "%i" SHA256

注意:在CMD窗口里直接执行,用单个百分号;如果写在批处理脚本(.bat)里,百分号要写两遍,也就是%%i。这个是最容易踩的坑,我在实际写脚本时也经常忘记。

如果觉得输出太乱,可以一边计算一边写入日志文件:

for %i in (*.zip) do certutil -hashfile "%i" SHA256 >> hashes.txt

>>是追加写入,用>是覆盖写入,批量场景下通常用>>保存多轮结果。

3. Get-FileHash命令详解

相比CertUtil,Get-FileHash是更“正规军”的存在。它是PowerShell的一个cmdlet命令,专做文件哈希计算,功能上就是冲着文件校验去的。PowerShell 4.0及以上版本都内置了,Windows 10、Windows 11、Windows Server 2012 R2及以后的系统都有,覆盖范围很广。

3.1 Get-FileHash基础语法

Get-FileHash的语法比CertUtil更好记,也更符合PowerShell的习惯:

Get-FileHash -Path "文件路径" -Algorithm 算法

也来看几个实际例子:

# 计算文件的SHA256(不写-Algorithm默认就是SHA256) Get-FileHash -Path "C:\Downloads\setup.exe" # 计算文件的MD5 Get-FileHash -Path "C:\Downloads\setup.exe" -Algorithm MD5 # 计算文件的SHA1 Get-FileHash -Path "D:\backup\archive.zip" -Algorithm SHA1

注意一个重要区别:Get-FileHash默认算法是SHA256,CertUtil默认是MD5。如果你在主流的文件下载站验证文件,站长提供的校验值通常是SHA256,那么用Get-FileHash时直接省略-Algorithm参数就行,反而更顺手。

3.2 Get-FileHash输出效果与格式化处理

Get-FileHash执行后输出的是一个结构化对象,包含三列:Algorithm(算法)、Hash(哈希值)、Path(文件路径)。看起来类似这样:

Algorithm Hash Path --------- ---- ---- SHA256 A4B8A4E6D0E3D2F4A8B9C7D6E5F4A3B2C1D0E9F8A7B6C5D4E3F2A1B0C9D8E7F6 C:\Downloads\setup.exe

比CertUtil要清爽很多。但它也有个“麻烦”——默认输出的哈希值是一长串大写字母,而很多网站给出的校验值是小写字母,肉眼对比时容易看花眼。处理办法是格式化输出,转成小写:

(Get-FileHash -Path "C:\Downloads\setup.exe" -Algorithm SHA256).Hash.ToLower()

这个写法是先取出Hash属性,然后调用ToLower()方法转成小写。输出就只有一行小写的哈希值,直接和网页上的对比,体验好很多。

如果只想提取哈希值而不想要其他信息,也可以直接用:

(Get-FileHash "C:\Downloads\setup.exe" -Algorithm SHA256).Hash

3.3 Get-FileHash的高级用法

Get-FileHash还能一次处理多个文件,直接传入通配符或多个路径:

Get-FileHash -Path "C:\Downloads\*.iso" -Algorithm SHA256

这样会把每个文件的哈希值都算出来,并附带文件路径,方便对应。这在批量校验场景下非常实用。

把哈希值直接写入文件方便对比,这也是很常用的操作。在PowerShell里这样做:

Get-FileHash -Path "C:\Downloads\setup.exe" -Algorithm SHA256 | Out-File -FilePath "D:\hash_result.txt"

或者基于格式化字符串输出,风格更清爽:

$hash = Get-FileHash -Path "C:\Downloads\setup.exe" -Algorithm SHA256 Write-Output "$($hash.Hash.ToLower()) setup.exe"

注意:直接在PowerShell里用>重定向也可以,但有个编码坑——PowerShell 5.1及以下版本默认重定向输出是UTF-16 LE编码,如果用记事本打开没问题,但一些老工具读这个文本文件可能乱码。这时候用Out-File -Encoding utf8显式指定编码更稳妥。

3.4 CertUtil与Get-FileHash的对比

我给这两兄弟做个直白的对比,谁好用、什么时候用谁,看这张表就清楚了:

对比维度CertUtilGet-FileHash
所属环境CMDPowerShell
默认算法MD5SHA256
输出格式三行非结构化文本结构化对象
大小写不区分输出为大写
多文件处理需for循环原生支持通配符
中文路径偶尔编码异常支持良好
路径友好性必须加引号处理空格同样需要引号
适用场景快速验证、老系统日常主力、脚本编写

我的使用经验是:日常主力优先Get-FileHash,因为输出可格式化、批量处理方便、编码问题少。但如果你是习惯了CMD的老用户,或者需要在不加载PowerShell的环境里快速算一个哈希,CertUtil也完全够用。两者可以并存,不必非要二选一。

4. 实战案例:下载系统镜像后如何核对SHA256

这一节用我最常遇到的场景来完整走一遍流程:下载了Linux发行版的.iso镜像,用自带的两个命令验证文件完整性。这个案例可以原样复制到其他场景——不管是软件安装包、数据库备份文件还是压缩包,思路完全一致。

4.1 第一步:拿到官方公布的哈希值

正规的软件下载页(比如Ubuntu、Debian、CentOS等),都会在下载按钮旁边提供校验值。可能是MD5、SHA256,也可能同时给好几种。你要做的就是复制官方提供的那个字符串,留着待会儿对比用。

以Ubuntu为例,下载页提供的通常是一段类似下面这样格式的SHA256校验值:

a4b8a4e6d0e3d2f4a8b9c7d6e5f4a3b2c1d0e9f8a7b6c5d4e3f2a1b0c9d8e7f6 ubuntu-22.04-desktop-amd64.iso

末尾的文件名很有用,因为有些网站会一次性列出一堆校验值,你要确保自己复制的那一行对应的是你下载的文件。还有个别项目会提供.sha256这样的独立校验文件,里面就是哈希值加文件名,逻辑一样。

4.2 第二步:用Get-FileHash计算本地文件哈希

打开PowerShell,执行:

Get-FileHash -Path "D:\Downloads\ubuntu-22.04-desktop-amd64.iso" -Algorithm SHA256

注意PATH要改成你实际存放ISO文件的路径。如果文件特别大(好几个GB),命令会跑一会儿,终端里看起来像是“卡住了”,这是正常的——算大文件哈希本身就是全文件读取计算,速度取决于磁盘读写和CPU性能,别中途Ctrl+C打断了。

等待输出后,把输出的64位十六进制字符串和官方提供的那一行做对比。这一步我建议别用眼睛硬看,应该用电脑帮你对比。

4.3 第三步:快速对比哈希值

方法一:把官方值复制到一个文本文件比如expected.txt,把命令输出也重定向到另一个文件,然后用fc(文件比较命令)对比:

fc.exe expected.txt actual.txt

如果输出“没有发现差异”,说明两者一致。

方法二:在PowerShell里直接用字符串比较,更精确。先把官方值存进一个变量,再和计算值比对:

$expected = "a4b8a4e6d0e3d2f4a8b9c7d6e5f4a3b2c1d0e9f8a7b6c5d4e3f2a1b0c9d8e7f6" $actual = (Get-FileHash -Path "D:\Downloads\ubuntu-22.04-desktop-amd64.iso" -Algorithm SHA256).Hash.ToLower() if ($expected -eq $actual) { Write-Output "哈希值一致,文件完整" } else { Write-Output "哈希值不一致,请重新下载" }

这个方法的好处是直接给出“一致/不一致”的结论,不用自己盯屏幕对比。实际用的时候,直接把$expected后面那一长串换成官方给出的校验值就行。

方法三:不想写变量的,也可以用CertUtil加findstr来过滤:

certutil -hashfile "D:\Downloads\ubuntu-22.04-desktop-amd64.iso" SHA256 | findstr /i "a4b8a4e6d0e3d2f4a8b9c7d6e5f4a3b2c1d0e9f8a7b6c5d4e3f2a1b0c9d8e7f6"

如果命令能匹配到输出,就说明哈希一致。这个方法优雅但有个缺陷:如果需要比对的哈希值很长,直接写进命令行容易看漏;而且findstr默认不支持超长字符串匹配,实际情况中遇到哈希值超过128位十六进制字符时,需要换用PowerShell的-match运算符。

4.4 批量校验多个下载文件

一次下载了十几个文件,想一次性校验全部,在PowerShell里一条命令就行:

Get-ChildItem "D:\Downloads\*.iso" | Get-FileHash -Algorithm SHA256 | Format-Table -AutoSize

这会列出所有iso文件的SHA256,然后你拿着结果和官方清单逐项对比。如果还想省事,做一个自动比对,可以把官方校验值保存成CSV,然后用脚本循环匹配——这是更进阶的玩法,但对大部分场景来说,手动对比已经完全够用了。

4.5 校验结果不匹配时怎么办

哈希值不一致,说明本地文件确实出了问题。根据我的经验,常见原因有几类:

  • 下载不完整:网络中断导致文件只下了一半,点击文件名看大小,和官方标注的文件体积对比一下,少了肯定不对。
  • 下载出错但文件大小一样:有些下载工具在文件下载完会做完整性校验但不报告细节,还是以哈希值为准。
  • 文件被修改过:从非官方渠道下载的安装包,哈希值和官网对不上就要高度警惕,这种情况下建议直接放弃该文件,回到官网重新下载。
  • 算法选错:比如官网给的是SHA256值,你本地却算了MD5,长度都不一样,当然对不上。先确认算法一致再对比。

值得提醒的是:如果官方同时给出了MD5和SHA256两个值,建议优先校验SHA256,因为SHA256的安全性远高于MD5,可以用更多校验维度来确认文件未被篡改。

5. 常见问题与排查技巧实录

我在各种机器上用过这两个命令,积累了一些容易踩的坑,现在统一列出来。很多问题看起来像是“电脑坏了”,实际上就是命令细节没注意到。

5.1 命令提示“不是内部或外部命令”

如果你在CMD里输入certutil提示“不是内部或外部命令”,先别慌。这通常是三种情况:

一是你用的是精简版系统,CertUtil确实被精简掉了。这种情况可以试着用PowerShell的Get-FileHash,它和PowerShell一起存在,一般不会被单独移除。

二是环境变量PATH被改坏了。CertUtil位于C:\Windows\System32目录下,正常情况下这个目录在PATH中。如果PATH里没有System32,那很多命令都会失效,不只是CertUtil。修复方式是打开系统环境变量设置,把%SystemRoot%\system32加回去。

三是最容易忽略的:你打开了PowerShell,但PowerShell的执行策略限制或解析方式导致命令被解释错。在PowerShell中调用外部命令certutil,建议用这样明确的调用方式:

certutil.exe -hashfile "C:\path\file.iso" SHA256

注意加.exe后缀,这样PowerShell会把它当外部命令执行,而不是试图用PowerShell语法解释。

5.2 CertUtil输出哈希值换行导致对比失败

这个坑我栽过一次。大文件(超过某个大小后)的哈希值很长,CertUtil会在特定宽度处自动换行,把64位的SHA256哈希值拆成了多行。如果你在命令行窗口里直接手工复制,很容易只复制了一部分,拿去对比当然对不上。

解决方法是重定向到文件再打开文件复制,用certutil -hashfile加>重定向不会有换行问题(或者至少重定向到文件的输出是完整连续的),然后打开文件对比。

不过说句实在话,如果你经常需要做文件校验,用Get-FileHash更方便——它的输出是PowerShell对象,不存在这种换行带来的复制烦恼。

5.3 文件路径带空格或中文导致出错

命令行的老规矩:路径带空格必须加双引号。这个大家基本都知道,但中文路径偶尔出问题容易被忽略。CertUtil在某些系统语言设置下面处理中文路径确实会有编码异常,表现为“找不到文件”或哈希值异常。

最稳妥的办法:复制文件到纯英文路径下,比如C:\temp\,算完再删掉或移走。或者直接用Get-FileHash,它对Unicode的支持更好。

还有一种情况:PowerShell中如果路径中包含方括号[、]等特殊字符,也需要处理。PowerShell默认把方括号当作通配符处理,遇到这种路径建议加-LiteralPath参数,表示按字面路径解析,而不是通配符模式:

Get-FileHash -LiteralPath "C:\Downloads\file[1].iso" -Algorithm SHA256

这个细节日常用不太到,但真踩到一次,排查起来很费时间。

5.4 服务器上PowerShell执行策略受限

在Windows Server上用PowerShell,有时候会碰到“脚本被禁用”或“因在此系统上禁止运行脚本”的错误。严格来说,这影响的是.ps1脚本文件,不会影响你手动执行Get-FileHash命令。但如果你把命令写进脚本文件,确实可能被策略拦下来。

临时绕过方式(需要在管理员权限的PowerShell里执行):

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass

这个只对当前窗口生效,关掉窗口就恢复默认,不影响全局设置。如果是生产环境,建议先确认改策略不会违反公司安全规定,能不改就不改,手动敲命令也一样能算哈希。

5.5 哈希值大小写问题

Get-FileHash默认输出大写哈希值,CertUtil默认输出小写(实际上网站给的校验值通常小写居多)。比对的逻辑应该无视大小写,所以如果你的对比方法是用文本编辑器的“查找”或Ctrl+F,建议先统一大小写再比对,避免因为大小写问题误判不一致。

在PowerShell里可以用:

$actual.ToUpper() -eq $expected.ToUpper()

统一转大写比较,或者都转小写比较,效果一样。哈希值的十六进制字符包括0-9和a-f(或A-F),转换大小写不影响信息本身。

5.6 计算大文件时“卡住不动”

单个几十GB的文件,读一遍盘去算哈希肯定需要时间,这是物理限制,不是命令卡死。判断到底是“在算”还是“真卡了”——看CPU占用,CertUtil和Get-FileHash计算时会持续占用一个CPU核心;再看磁盘活动,任务管理器里能看到磁盘读取的迹象。

如果两个指标都没变化,那可能真的卡死了,Ctrl+C取消,检查文件是否被其他进程锁定。另外,某些杀毒软件实时监控开启时,扫描大文件会拖慢速度,但一般不至于卡死。一个可选方案是算哈希之前暂时关闭文件实时监控,但要注意这是裸奔状态,别忘事后打开,不建议在重要机器上做这个操作。

还有一个性能心得:如果是在机械硬盘上做哈希大文件,速度会比较慢。SSD上快得多,但受制于接口限制和系统缓存影响。如果条件允许,把要校验的文件放到本地SSD上再算哈希,能省不少时间。

5.7 别忽略校验文件本身的完整性

这一步特别容易忽略:你从官网复制哈希值的时候,中间人篡改了官网页面,或者DNS被污染,导致看到的就是一个错误的哈希值,那怎么对比都对齐——而且这种对齐恰恰是最危险的。

所以我常年建议:重要文件的校验值至少从两个独立渠道确认。比如官网页面看一眼,再从官方GitHub仓库或官方邮件列表里的说明核对一遍。对于极重要的文件,甚至建议在隔离环境里做真实解压、运行测试,而不只是看哈希。

好在Windows自带的这两个命令最常见的用途,还是防下载出错、防文件损坏,这在日常使用中已足够。面对刻意伪造文件这类高威胁场景,光靠哈希校验是不够的,还需要数字签名、来源可信等多重手段配合。

6. 把文件校验做成小脚本

如果要频繁校验文件,手敲命令确实有点烦。这里分享一个我自用的批处理脚本思路,适合Windows下的日常快速校验。新建一个checkhash.bat文件,内容参考如下:

@echo off chcp 65001 >nul echo 请输入要校验的文件路径: set /p filepath= echo 请选择算法(1=MD5, 2=SHA1, 3=SHA256): set /p alg= if "%alg%"=="1" set algo=MD5 if "%alg%"=="2" set algo=SHA1 if "%alg%"=="3" set algo=SHA256 certutil -hashfile "%filepath%" %algo% pause

这个脚本简单实用,支持拖拽文件到命令行窗口直接获取文件路径(Windows的CMD支持把文件拖到窗口里自动填充路径)。如果你想省去交互,也可以直接把算法和路径写死成参数版本,做成checkhash.bat "文件路径" SHA256这种用法。

PowerShell版则可以做成一个函数,放进Profile里随时调用:

function Get-HashOfFile { param( [Parameter(Mandatory=$true)] [string]$Path, [ValidateSet("MD5","SHA1","SHA256","SHA384","SHA512")] [string]$Algorithm = "SHA256" ) $hash = Get-FileHash -Path $Path -Algorithm $Algorithm Write-Output "$($hash.Hash.ToLower()) $($hash.Path)" }

把这段函数加进PowerShell Profile文件,以后在任意目录敲Get-HashOfFile "C:\file.iso"就能直接拿结果,省事很多。把常用工具沉淀成函数或脚本,比每次临时敲一长串命令靠谱得多。

7. 两个命令之外的补充思路

CertUtil和Get-FileHash是Windows系统自带的主流方案,但也有一些场景需要搭配别的东西。

比如你要校验一个文件的SHA256,同时还想校验它的数字签名是否有效,那光有哈希值还不够。Windows下可以用PowerShell的Get-AuthenticodeSignature命令来检查数字签名:

Get-AuthenticodeSignature -FilePath "C:\Downloads\setup.exe"

这会显示签名是否有效、签名者是谁、证书是否受信任。哈希校验和数字签名是两个维度的验证:哈希保证文件内容“没变”,签名保证文件来源“可信”。对于从网上下载的可执行文件,两个都验证一下会更稳妥。

再比如,你要比对的校验值存放在.sha256文本文件里,且文件数量很多,可以用这样一个PowerShell小脚本批量核对:

$checksums = Get-Content "C:\checksums.sha256" foreach ($line in $checksums) { $parts = $line -split '\s+' $expectedHash = $parts[0].ToLower() $fileName = $parts[1].Trim('*') $actualHash = (Get-FileHash -Path "C:\Downloads\$fileName" -Algorithm SHA256).Hash.ToLower() if ($expectedHash -eq $actualHash) { Write-Output "$fileName : OK" } else { Write-Output "$fileName : FAILED" } }

这段脚本会逐行读取校验文件,将每行的预期哈希值和实际计算结果比对,最后输出每个文件“OK”或“FAILED”。注意校验文件的格式可能因项目而异,有的带星号(表示二进制模式),有的不带,所以Trim('*')和-split的规则需要根据实际情况微调。但核心思路是通用的,掌握了之后可以按需改造。


做文件校验这几年,我最大的体会就是:别小看命令行里的小工具,Windows自带的能力往往比想象中强大。CertUtil和Get-FileHash这两个命令每个Windows用户都内置了,平时用不上没关系,一旦需要验证一个系统镜像、一个安装包的完整性,它们就是你最可靠的后盾。真遇到哈希值对不上的情况,也别慌,按着上面整理的排查顺序一步步来——先确认算法一致、再确认文件完整、然后确认复制有没有遗漏,九成问题都能定位出来。最后再提醒一句:重要的哈希值,尽量多渠道比对;重要的文件,校验通过后再使用。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询