第 5 课
Hash 调试流程
checksum 不一致与完整性校验的实用排查流程。
当 checksum 对不上时,问题通常在字节层面,而不是 Hash 数学本身。
先确认参考 Hash 的来源
查看发布页、Release Notes、lockfile 条目或内部文档,并记录:
- 算法名称(MD5 还是 SHA-256)
- 输出格式(小写 hex 很常见)
- Hash 覆盖的是压缩包本身还是解压后的文件
Hash 正确的产物
下载的 .zip、.tar.gz、安装包应按下载后的原文件计算。除非参考说明明确要求,否则不要对解压目录做 Hash。
文本对比要格外小心
字符串对比时确认编码(UTF-8 还是 Latin-1)、换行符(\n 还是 \r\n)以及不可见空白。批量模式适合在相同规则下处理多行值。
二进制请用文件模式
日志、图片、编译产物应基于原始字节 Hash。通过文本粘贴可能因编码转换而破坏二进制内容。
仍然不一致时
- 重新下载,排除传输不完整
- 对比文件大小与修改时间
- 确认上游是否更新了产物但未更新公布的 checksum
- 检查是否 Hash 了被转换过的副本(格式化 JSON、规范化路径等)
本地 Hash 生成器能帮你快速迭代,但可信的参考 Hash 仍应来自你要校验的那个权威来源。