首页/开发/CI/CD 与发布速查/校验和文件(Checksums)
构建与制品管理58 条

校验和文件(Checksums)

发布制品附带 SHA-256 校验和并说明验证方式:传输损坏与内容替换都能被下游发现,是发布页的基础配套。

CI/CD 与发布速查开发更新于 2026-10-13

校验和文件是什么

发布制品附带 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 验证

各平台校验命令

平台命令说明
Linuxsha256sum -c 文件.sha256coreutils 自带
macOSshasum -a 256 -c 文件.sha256系统自带 Perl 脚本
Windowscertutil -hashfile 文件 SHA256与发布值人工比对
校验和防传输损坏;防主动替换需要签名或摘要托管在可信渠道。
校验和要在发布说明里说明验证命令:只贴一串哈希,多数用户不会去用;给出可复制的一整段命令效果最好。
校验和文件本身很小,别放进源码仓库当资产:随发布上传即可,避免变更记录被发布产物来回冲刷,也不便于随版本归档。

易错点

  • README 手抄校验和:容易抄错且难核对,用生成的 .sha256 文件
  • 校验和与文件同通道分发:对手可同时替换,发布说明里写上可信来源
  • 上传后重命名制品:内容没变但按名匹配对不上,命名一次定稿,避免用户按名找不到
  • 只签制品漏签 sums:批量分发时校验清单同样需要签名保护,否则签名颗粒度覆盖不到全部产物
  • 校验通过就万事大吉:只能证明与给定值一致,给定值的可信来源(签名、独立渠道)才是关键

数据来源与参考

  • GNU coreutils《sha256sum》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌