首页/系统/信创系统运维速查/校验和工具(md5/sha256)
命令与包管理65 条

校验和工具(md5/sha256)

校验文件一致性与完整性:sha256sum 生成摘要、-c 批量校验清单文件;下载分发与迁移比对都用它。

信创系统运维速查系统更新于 2026-10-13

校验和是干什么的

哈希摘要把任意大小的文件压成定长字符串,内容变一个字节结果就完全不同,因此可以用来验证完整性:下载后与官方值比对、迁移后确认两端文件一致、分发前生成清单供接收方核对。sha256sum 与 md5sum 用法几乎一样,区别在强度——SHA-256 用于对抗篡改,MD5 仅在需要与老系统比对时保留使用。

基本信息

生成摘要sha256sum file、md5sum file
批量校验sha256sum -c SHA256SUMS
批量生成find 目录 -type f -exec sha256sum {} + > 清单
输出格式摘要 + 两空格 + 文件名
目录校验先生成清单文件再分发核对
权限要求普通用户,需对目标文件可读

典型使用场景

  • 下载安装包或 ISO 后校验完整性
  • 把内网补丁库生成清单,分发时让接收方自行核对
  • 数据迁移前后对比两端文件,确认没有漏拷或损坏
  • 归档介质定期抽检,发现静默损坏
  • 自动化部署脚本里校验构件摘要,避免使用被替换的包

典型用法

典型用法
sha256sum app.tar.gz                          # 单文件摘要
sha256sum app.tar.gz > app.tar.gz.sha256      # 生成清单,随文件一起分发
sha256sum -c app.tar.gz.sha256               # 接收方校验,输出 OK 或 FAILED
find /dist -type f -name '*.iso' -exec sha256sum {} + > /tmp/iso.sha256   # 批量生成目录清单
sha256sum -c /tmp/iso.sha256 2>/dev/null | grep -v OK   # 只挑出不一致的条目

跨机器比对与注意点

跨机器比对与注意点
cd /dist && sha256sum -c /tmp/iso.sha256      # 清单里是相对路径,校验前先切到对应目录
md5sum file1 file2                            # 一次算多个文件,便于快速比对
sha256sum a.bin | awk '{print $1}' > a.sum; sha256sum b.bin | awk '{print $1}' > b.sum; diff a.sum b.sum
find /data -type f -size +1G -exec sha256sum {} + > big.sha256   # 只对大文件算摘要,控制耗时

输出与判读

输出含义处置
摘要 文件名单文件或批量生成的格式与官方值逐字符比对,长度固定
文件名: OK内容与清单一致校验通过
文件名: FAILED内容与清单不符文件被改或损坏,重新获取
找不到文件清单中的相对路径不匹配先 cd 到清单所在目录再执行
无任何输出路径写错或权限不足用 ls 确认文件存在
校验只能证明内容与清单一致,不能证明来源可信:清单本身也要来自可信渠道,否则被替换的文件配上被替换的摘要依然『校验通过』。
对大目录做全量摘要耗时明显:按需限定文件类型与大小(如 find 加 -size 条件),把结果落盘缓存,避免每次巡检重复计算。

易错点

  • 校验清单里是相对路径,没先切换目录就执行 sha256sum -c,全部报找不到文件,误判为文件丢失
  • 在同一台机器上同时生成清单和校验,只能发现磁盘损坏,无法发现传输链路中被替换的情况,清单应来自可信渠道
  • 把 MD5 当作防篡改手段,弱算法可被构造碰撞,安全场景应使用 SHA-256 及以上
  • 只对压缩包算摘要而不解压核对内容清单,包内单个文件缺失时校验依然可能通过
  • 跨机器比对时直接用文件全路径生成摘要,两端路径不同导致结果无法直接比对,应先统一成相对路径

数据来源与参考

  • GNU coreutils 手册
  • 安全实践
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌