03:00:00省 50%领取

实操配方

交付包校验和审计:缺失、多余与字节更改

确认收到的文件夹恰含预期本地普通文件,且字节内容一致。校验和只检测相对可信副本的变化,不是作者签名或媒体质量检查。

附实际运行过的本地样例、脚本和回执;不代表已调用视频生成服务。

原创任务专用本地夹具示意图
原创三文件交付夹具、真实缺失/多余/改字节执行结果与校验和审计图,没有媒体或模型质量声明。

01准备环境与输入

  1. 准备 Node.js,仅使用内置文件与加密模块。原创 delivery/ 中包含 delivery-notes.txt、shots.json、captions.srt。
  2. 查看放在 delivery/ 之外的 delivery-manifest.json,三行分别绑定 basename、字节数与 SHA-256;不对清单自己求哈希,以免循环自引用。
  3. 使用新输出目录,把预期清单与可编辑接收文件分开保留。配套三个原始交付文件合计171字节,不包括回执和说明。

02执行配方

运行命令

node run-recipe.mjs --out ./my-run
  1. 固定预期文件集合

    脚本创建原创小型交付包,记录排序文件名、字节数与 SHA-256。要求文件集合完全相同:多出的文件应成为可复核差异,不能默默忽略。

  2. 只接受安全普通文件

    先验证唯一且安全的 basename,比较预期与实际集合,再用 lstat 在读取内容前拒绝符号链接。本例只审计一层目录,不是任意嵌套压缩包或并发不可信文件系统审计。

  3. 同时比较大小与完整字节哈希

    逐文件检查大小及 SHA-256。等长变体实际翻转 delivery-notes.txt 的一个字节,证明只看大小不够。SHA-256 证明相对这份预期清单一致,不自动证明清单作者可信。

  4. 恢复后再次审计交付包

    脚本临时移走文件、添加多余文件、修改字节和替换为符号链接,并在 finally 恢复原文件;另测重复清单路径和 ../outside.txt。恢复后的交付包再次通过,九项检查有回执。

03检查结果

  • 干净 delivery/ 恰好包含声明的三份普通文件。
  • 所有预期 SHA-256 都为64位小写十六进制摘要。
  • 缺少文件和出现额外文件分别被拒绝。
  • 保持文件大小的单字节修改仍会校验失败。
  • 重复清单路径、父目录路径与符号链接均被拒绝。
  • 所有负向夹具恢复后,交付包再次通过,九项检查全部通过。

04排错与交付

字节数全都一致,审计仍失败。

只对照报告文件的实际 SHA-256 与预期行,恢复正确字节,不移除哈希检查。

交付包多出一份导出。

先决定该文件是否属于交付;只移除误放文件,或明确修改预期清单并重新审查。

快捷方式或符号链接被拒绝。

只把该条目换为真正的本地普通文件,再记录目标字节并重跑集合与 SHA-256 检查。

把可信清单与实际审计回执一同交付。本检查不解码视频、不证明作者身份,也不能保护一份本身已被替换的清单。

05下载脚本与样例