校验和文件是什么
发布制品附带 SHA-256 校验和,并在发布说明里给出验证命令:下游能发现传输损坏与内容替换,是发布页的基础配套。典型工作流:构建产出 → 生成校验和 → 对校验和签名 → 一并发布;验证方先验签再校验和。与签名互补——校验和防意外损坏,签名防主动篡改;一行命令、零依赖,从发布第一天就该配上。
基本信息
| 生成 | sha256sum <文件> > <文件>.sha256(或汇总 checksums.txt) |
|---|---|
| 验证 | sha256sum -c / shasum -a 256 -c(macOS) |
| 适用 | 二进制、归档、安装包;与签名互补使用 |
| 分发 | 校验和文件随制品一起发布,别贴在别处 |
| 时机 | 以最终发布的文件为准,上传后不要重新打包 |
典型使用场景
- 发布下载页:每个制品配一个 .sha256
- 安装脚本:下载后先校验再执行
- 批量制品:汇总到 checksums.txt 一次验证
- CI 产物:构建后生成校验和并随制品上传
- 国内镜像站分发:镜像站的副本可被校验确认与原站一致
- 上游依赖校验:引入第三方二进制前先比对官方公布的校验和
生成与校验
生成与校验
sha256sum app-1.9.0-linux-amd64.tar.gz > app-1.9.0-linux-amd64.tar.gz.sha256
# 多制品汇总,便于批量验证
sha256sum app-1.9.0-*.tar.gz > checksums.txt
sha256sum -c app-1.9.0-linux-amd64.tar.gz.sha256 # Linux 验证
shasum -a 256 -c app-1.9.0-linux-amd64.tar.gz.sha256 # macOS 验证各平台校验命令
| 平台 | 命令 | 说明 |
|---|---|---|
| Linux | sha256sum -c 文件.sha256 | coreutils 自带 |
| macOS | shasum -a 256 -c 文件.sha256 | 系统自带 Perl 脚本 |
| Windows | certutil -hashfile 文件 SHA256 | 与发布值人工比对 |
校验和防传输损坏;防主动替换需要签名或摘要托管在可信渠道。
校验和要在发布说明里说明验证命令:只贴一串哈希,多数用户不会去用;给出可复制的一整段命令效果最好。
校验和文件本身很小,别放进源码仓库当资产:随发布上传即可,避免变更记录被发布产物来回冲刷,也不便于随版本归档。