文档与 OCR实用指南

文件交付怎么核对版本?SHA-256清单与8字节练习包

文件名相同,不表示收到的是同一版本。先由交付双方确认参考文件,再生成可信清单;接收后按相对路径、字节数和SHA-256逐项比较,最后解包打开内容。下面提供两文件、8字节的固定练习,不需要手动创建文件或猜编辑器的换行。

办公室木架上按排摆放的彩色文件夹
配图:Viktor Talashuk · Unsplash License

本次修订:增加固定字节的双语练习包、文件夹核验完整步骤、换行反例和解包后验收。

先把问题解决

正确v1包含docs/note.txt(3字节)与data/list.csv(5字节),有效载荷合计8字节。v2只给note多加一个LF,变成4字节,核验应显示一项内容不符、一项一致。8字节不是ZIP大小,哈希一致也不代替人工确认交付版本和内容。

解开练习包,把参考答案与输入分开

使用本文下载区的本地生成练习包;它是虚构演示材料。先用操作系统解开外层ZIP,里面有handoff-v1、handoff-v2两个输入文件夹、reference-v1.json参考清单和accepted-v1.zip。不要把README、参考清单或嵌套ZIP一起选进待核验文件夹。

  1. 双方先确认handoff-v1是本次接受的版本。在真实交付中,这一步需要独立确认渠道;收到文件后现生成一份新清单,不能反过来证明它就是原定版本。
  2. 打开文件校验,用文件夹选择入口选择handoff-v1,使相对路径保留docs和data;当前入口去掉最外层文件夹名。
  3. 导入reference-v1.json,再点“计算并核验”。浏览器要求确认文件夹选择时,核对文件夹名称与2个文件后继续。
解压后应看到的输入内容
输入路径v1的精确内容字节数
docs/note.txtUTF-8 abc;没有BOM或末尾换行3
data/list.csvid、LF、7、LF;没有BOM5

先通过v1,再用v2主动制造一次失败

  1. v1应有2项一致,没有缺失或额外文件。核对note的SHA-256为ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad,保存JSON清单与CSV核验报告。
  2. 重选handoff-v2,继续对照同一份reference-v1.json计算;note多一个LF应失败,不能因为文本看起来同为abc而忽略。CSV文件应仍通过。
  3. 若换行确实是批准的改动,由负责人确认新版本再生成新清单;若不是,恢复已接受的v1重新核验。不要编辑参考哈希来“消除错误”。
  4. 用ZIP解压检查accepted-v1.zip的条目,可下载单项或重新打包选择项;要在磁盘得到文件夹,请用操作系统解压。选中解压后的文件夹再次核验,再打开note与CSV检查显示内容。
对照同一份可信v1清单的参考结果
选择的文件夹docs/note.txtdata/list.csv
handoff-v13字节;一致5字节;一致
handoff-v24字节;内容不符5字节;一致

若两个文件都显示缺失、同时出现两个额外文件,先查外层目录或路径是否不同。若只有note失败,先比较字节、换行和BOM,再检查编码与真正的内容变更。

用八个字节理解校验清单在比什么

自编最小交付包含两个 UTF-8 文本文件:docs/note.txt 的精确内容是 abc,没有行尾换行,共 3 字节;data/list.csv 的精确内容是 id、换行、7、换行,即 id\n7\n,共 5 字节。两份正文合计 8 字节。这里的数字是正文大小,不是 ZIP 大小,也不包括清单本身。

对 abc 计算 SHA-256,完整值应为 ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad。若编辑器保存时在末尾补了换行,它变成 4 字节,摘要也改变,即使肉眼仍看到 abc。用这个无敏感内容的样本,能检查你选择的是文件字节,而不是复制到文本框后的另一份文字。

自编包内文件集合,均为纯文本
相对路径精确内容说明字节数
docs/note.txtabc,末尾没有换行3
data/list.csvid\n7\n,使用 LF5
合计仅以上两个正文文件8

字节相同但改了名,为什么仍提示缺件

当前文件校验按相对路径找对应文件,再比较大小和 SHA-256。若把 docs/note.txt 改成 docs/notes.txt,正文即使仍是 abc,旧清单会看到前者缺失、后者额外出现。这不是摘要计算错误,而是接收方约定的文件名没有满足。恢复约定路径,或在双方确认变更后从已审核的新文件集合重新导出清单。

选择整个文件夹时,工具会去掉最外层文件夹名,保留里面的相对目录;单独多选文件则通常只有文件名。两份来自不同目录却同名的文件因此可能冲突,应通过文件夹选择保留结构。不要为了消除额外条目,把清单手工改成恰好符合任意收到的文件;参考清单需要来自已接受的交付版本。

校验压缩包,与核对解压后的交付是两项检查

接收后核对 ZIP 自身的摘要,可以确认它与参考 ZIP 的字节是否相同;但如果参考包最初就漏了最终 PDF,相同的包仍然漏件。先审核应该有的相对路径、格式和版本,形成包内正文清单,再制作 ZIP。接收后解压到新位置,与这份正文清单比较,最后在目标软件打开关键文件。

清单宜与受检正文集合分开保存。若把 checksums.json 也放入文件夹后整夹选择,它可能作为额外文件出现;应明确此次受检集合是否包含清单,并避免让一份清单要求包含它自己的最终摘要。修订交付时保留旧清单和新清单,用版本比较说明增删改项,防止为让校验通过而把过期文件重新混入新包。

输入不同或继续处理时,再选这些工具

  • 核验交付要求: 设置必需项和限制,检查缺件、重复与空文件,再为已核对集合导出清单。
  • 核对文件完整性: 对实际交付文件计算 SHA-256,在解压或传输后与可信清单比较;哈希不认证内容正确。
  • 整理交付副本: 导出前预览批量命名与重复处理选择,防止只因名称相近便移除不同版本。
  • 比较交付包版本: 选择基线与当前文件夹或 ZIP,检查增删改条目,并查看可用预览。
  • 上传前检查文件: 输入实际目标的体积与像素规则,检查拟修复图片,并对最终输出重新核验。
  • 创建 ZIP: 仅打包已验收的待交付集合,在清单中保留名称与目录结构。
  • 查看并解压 ZIP: 检查内部名称和数量,解压到明确位置并打开代表性文件;不要执行不熟悉的内容。
  • 中转已检查副本: 配对目标设备,查看界面说明的服务与有效期信息,并检查接收文件;配对成功不等于交付完成。
  • 复用处理配方: 检查导入处理链,先用不同尺寸或字段的小批次测试,再用于新交付。

交付完成要同时满足三个层次

美国国会图书馆将 ZIP 说明为文件包;内部内容应与外部文件名单独核对。

表格分组生成文件时,应按预期分组核对 ZIP 清单。 体积规则之外,还可能有像素与宽高比要求。

文件交付验收

  • 版本:参考清单来自已确认的交付版本,不是从未知接收文件反向生成。
  • 字节:2个相对路径、大小与哈希匹配,无未解释的缺失、额外或内容不符。
  • 用途:从最终交付ZIP解出的文件再次核验,并在接收方应用中打开;表格编号和换行显示符合预期。
  • 记录:保存版本确认与核验报告;练习包下载、打开ZIP或算出哈希本身不表示实际业务交付成功。

常见问题

哈希一致证明文档内容正确吗?

不证明,只说明字节与参考一致;参考本身须来自可信且经过检查的文件集合。

ZIP 会把所有文件压得很小吗?

不会,已经压缩的图片和媒体可能变化很小,应检查实际包体积。

保存的配方能代替最终核验吗?

不能,新输入可能有不同尺寸、字段或异常值,应检查实际输出。

参考资料与延伸阅读

按步骤开始处理

进入对应工具,预览处理结果,检查导出的文件。

这个主题的后续文章

沿着同一主题,继续阅读引用了本文的新文章。

继续阅读