同一句「CRC 校验失败」背后可能是密码输错,也可能是包没下完或者真的损坏,先分清是哪一种再动手,能省掉大量盲目重下和反复解压。多数情况是密码字符、下载中途断掉或者分卷没下全造成的,原始文件大多还在,不必急着重装系统或换电脑。以下方法在 Windows 10/11 实测可用。
重输一次密码并用命令行测包,能一次分清原因;再比对大小与哈希排除坏包,最后用测试、修复和强制提取把还能读出的文件抢救出来。
适用系统:Windows 10/11;最后更新:2026-09-28。
解压到一半弹 CRC 校验失败,到底是密码还是包坏了
在 Windows 上解压,进度条走到一半弹出「CRC 校验失败」,用 7-Zip 会看到 `CRC Failed` 或 `Data Error`,系统自带解压则可能直接给出 0x80004005。同一句话对应的原因并不一样,关键线索是报错出现的位置。
先看清报错是整包就报、还是走到某个具体文件才报,再核对密码字符和分包是否齐全,方向对了大部分情况几分钟就能定位。
方法1 重输密码,分清是密码错还是包坏
7-Zip 和 WinRAR 在密码输错时同样会报「CRC 校验失败」,提示里并不会写「密码错误」,所以一看到报错就判定包损坏,往往是误判。先用命令行把两种情况分开,比反复双击解压靠谱得多。
报错位置就是判断依据:整包还没开始解就报错,密码输错的可能性更大;进度条过半、走到某个具体文件才报错,才更可能是包体损坏。分清之后再决定下一步,不用来回折腾。
操作步骤
- 解压时弹出「CRC 校验失败」或「数据错误」,先别判定包坏了,退回密码输入框重新输入一次;密码可以先在记事本里打好再粘贴,避免看不见的空格
- 逐字核对:全角与半角字符、末尾误带的多余空格、下划线 _ 与连字符 -、英文字母的大小写
- 按 Win+R 打开运行框,输入 cmd 回车,执行 7z t "D:\a.7z" -p"你的密码",输出 Everything is Ok 说明密码和包体都正常
- 换 WinRAR 命令行交叉验证:unrar t "D:\a.7z",两次都能过就基本排除密码问题
- 若提示 Wrong password、Can not open encrypted archive,或者解压刚开始就报错,基本可以判定是密码输错
- 若报错出现在解压到某个具体文件时、进度条已经过半,才更可能是包体损坏
方法2 比对大小与 SHA256,排除没下完的坏包
下载中断或分包缺失会让包体尾部不完整,算一次哈希和源站对一遍最直接,不一致就直接重下,别把时间花在修复上。哈希用来判断包完不完整,比肉眼看着文件大小差不多要准确得多。
这一步的判断标准只有一条:哈希对齐就继续修,对齐不了就重下,中间没有别的操作空间。
操作步骤
- 右键压缩包→属性,记下「大小」后面的精确字节数,和下载页或源站标注的字节数逐位对比,差 1 字节也说明没下完
- 按 Win+R 输入 cmd 回车,执行 certutil -hashfile "D:\a.7z" SHA256,把输出的哈希值复制下来
- 和源站公布的校验值逐字符对比:一致说明包是完整的,不一致说明传输中断或者文件被改动过
- 多线程下载器和断点续传容易在文件尾部丢字节,换单线程完整重下一次更稳
- 重下后再用 certutil -hashfile 复核一次,哈希对齐再进入后面的修复环节
- 源站没给哈希时,至少核对字节数是否完全一致,同时留意分包编号有没有缺号
用「软领Win解压缩」更省事
手工比对哈希、跑命令行测试,再一个个文件强制提取,步骤多也容易漏。软领Win解压缩的「损坏包处理」针对的就是这类打不开的压缩包:先对文件做一次完整性检测,判断损坏范围、看看影响到了哪些具体条目,再把仍然能读出来的文件尽量提取出来,省得在几个工具和命令之间来回切换。
软领是知名国产软件品牌,20 年技术沉淀、服务千万用户;软领官网 wyouhua.com 直接下载,安装时没有捆绑勾选项。

方法3 用压缩软件自带的测试与修复
7-Zip 的「测试压缩包」只报错不改数据,WinRAR 的「修复压缩文件」能重建索引,剩下的内容再用强制提取抢救。两个工具配合用,比只盯着一个反复点要有效。
顺序别颠倒:先测清楚哪些条目坏了,再去修复,最后才提取。跳步容易把还能读的内容一起弄丢。
操作步骤
- 7-Zip 里右键压缩包→7-Zip→测试压缩包,逐项结果会标 OK 或者 CRC Failed、Data Error
- 记下报错的文件名,报错条目常常集中在压缩包尾部,正好对应下载不完整的判断
- WinRAR 里点工具→修复压缩文件,按原格式选「作为 RAR 处理」或者「作为 ZIP 处理」,指定一个和原包不同的输出目录
- 修复后会生成 rebuilt.xxx.rar,先对新建的包再测一次,通过后再解压
- 对仍能读出的部分执行 7z x -y "D:\a.7z" -o"D:\out",报错的单个文件跳过就行
- 遇到 0x80004005、反复弹「数据错误」时先停手,别连续点重试,避免继续写入覆盖原始文件
方法4 兜底:重建目录、补齐分卷、转移副本
自带修复也无效时,用命令行重建 ZIP 中央目录、把缺失的分卷补齐,提取结果立刻转到别的盘存放。到了这一步,保护原始包不再被覆盖写入比抢救速度更重要。
三层依次试,压缩软件层不行就走命令行层,命令行也无效再看分包层,多数坏包在第二层就能拿回大部分文件。
操作步骤
- ZIP 包可以用 zip -FF "D:\a.zip" --out "D:\fixed.zip" 扫描并重建中央目录,损坏的块会被跳过
- 分卷包(.part1.rar、.001/.z01)要把所有卷都下全,缺任意一卷整包都会报 CRC 校验失败
- 检查分卷命名是否连续、有没有 0 字节的卷,那是下载中断的典型特征,缺哪一卷就补哪一卷
- 单文件损坏又没有备份时,先复制一份压缩包副本,再在副本上逐个文件提取,跳过坏块
- 提取出来的文件立刻复制到另一个盘或者移动硬盘,别覆盖原包所在的扇区
- 以上都无效,就换到 D:\temp 这类临时目录重下原包,不要在原来的包上反复覆盖写入
常见问题
crc校验失败是不是密码错了?
不一定。7-Zip、WinRAR 在密码输错时也报「CRC 校验失败」,提示里不会写「密码错误」。先重输一遍密码,再执行 7z t 测一次,输出 Everything is Ok 就说明密码没错,问题在包体上。
7z 提示 CRC Failed 但文件列表能打开,里面的文件还能用吗?
能打开列表说明中央目录还在。用 7z t 逐项看哪个条目报错,没报错的文件多数可以正常提取,用 7z x 把坏的那一个跳过就行。
WinRAR 修复压缩文件后 rebuilt 还是 CRC 校验失败怎么办?
说明损坏位置在数据区,光重建索引解决不了。改用强制提取把能读的条目抢救出来,提取结果立刻复制到别的盘,再考虑重新获取原包。
certutil -hashfile 算出来的哈希和官网不一样是什么原因?
常见原因是下载没走完、多线程下载器在尾部丢了字节,或者文件被改动过。换单线程完整重下一次,重下后再算一遍核对。
分卷压缩包缺了一个 .part3.rar 会报 CRC 校验失败吗?
会。缺卷时解压会在缺失位置中断并报 CRC 校验失败,把缺的那一卷补齐、确认命名连续之后重新解压即可。
推荐阅读
压缩包损坏打不开 先备份再修复 改扩展名和临时文件找回也有用
极限压缩会损坏文件吗,真正压坏压缩包的是断电、坏道和内存不足
相关推荐
WinRAR/7-Zip错误1 无法作为压缩包打开文件怎么修复

提示