哈希比对与差异处理
哈希比对是证据完整性的基础动作,但比对比看起来更容易出错:算法要一致、输出格式要一致、文件范围也要一致。出现不一致时,按读取错误、镜像截断、采集后被改动三类原因逐项排查,弄清原因再决定是否需要重新采集或重新出具结论。
基本信息
| Linux | sha256sum -c <清单文件> 按清单逐项校验 |
|---|---|
| Windows | Get-FileHash -Algorithm SHA256 或 certutil -hashfile <文件> SHA256 |
| 比对前提 | 算法一致、文件范围一致、大小写与空格处理一致 |
| 差异原因 | 读取错误、镜像截断、比对对象不一致或被改动 |
| 留痕要求 | 校验时间、执行人、结果一并记入取证日志 |
典型使用场景
- 采集完成时验证镜像与源盘哈希是否一致
- 证据交接时确认双方拿到的是同一份数据
- 分析途中怀疑副本损坏,快速定位具体文件
- 排查同一文件在不同工具下哈希不同的原因
- 归档前对全部证据文件做一轮批量校验
两平台比对
两平台比对
sha256sum -c /evidence/sdb.sha256 # Linux:按清单逐项校验
sha256sum /evidence/sdb.dd > /evidence/sdb.sha256 # 生成校验清单
certutil -hashfile E:\evidence\sdb.dd SHA256 # Windows:命令行计算
Get-FileHash -Algorithm SHA256 E:\evidence\sdb.dd # Windows:PowerShell 计算
# 两侧结果比对前统一大小写与分隔符,避免格式差异被当作内容差异差异原因排查
| 现象 | 可能原因 | 处理方式 |
|---|---|---|
| 大小不同 | 镜像截断或导出未完成 | 重新采集并核对源介质容量 |
| 哈希不同 | 读取错误或文件被改动 | 换介质重算,必要时重新采集 |
| 单文件异常 | 文件被后续操作修改 | 查操作记录并解释改动来源 |
| 整批不一致 | 比对口径不同 | 先核对算法与文件范围再判断 |
不同工具输出的哈希在大小写、是否带空格、是否含文件名上都不一样,比对脚本里先统一成小写再去掉空白,否则格式差异会被误报成内容不一致,既浪费时间也动摇结论的可信度。
校验结果必须与时间、执行人一起留痕。同一介质事后重算得到不同结果时,要先解释清楚原因再对外出具结论,不能只挑对自己有利的那一次结果写进报告。