改一个字,它就红 —— 一个专门验「核验报告」的小工具
逐条可核 · 开源首发

做完一份核验报告,最怕被问一句:
"这条,你凭什么说核过了?"
答"我看了",不行。答"系统显示通过",也不行——系统凭什么?
我做了一个很小的东西,只回答一件事:
这一条,按这一版规则,核过没核过,谁签的字。
而且这句话,你可以自己验,不用信我。
它不做更聪明的判断,也不打分、不排名。它把"核验工作"做成一份可以当场复算的清点。
今天把它开源了,只有六个文件,没有引擎,也没有规则库:
https://github.com/LiaoJim-hub/zhutiaoke-sample/tree/main
一、它解决什么:报告"看起来核过"和"真的核过",长得一样
这是这一行最难受的地方——
报告写得很齐、格式很漂亮、"已复核"三个字也签了。
可签字不等于复核。真要追问"你复核了哪几项、依据什么、哪一步该发现没发现",往往就散了。
更进一步:报告交出去之后,有没有被人改过? 这也是没人能回答的。
仓库里的样例材料(原样,未改一字)我在样例里用的是一份审计底稿节选(合成的,不是真实底稿)。工具给出三条结论:
| 判据 | 结论 | 为什么 |
|---|---|---|
| 三表复核底稿 | 红 | 三张表的复核底稿均未见 |
| 函证回函是否经转交 | 红 | 回函由被审计单位统一收取后转交 ⇒ 证据链断了 |
| 关键审计事项段 | 判不了 | 材料是底稿+报告混装,且主体非上市 ⇒ 这条不适用 |
注意第三条:它没有硬凑一个"通过",也没有判红,而是说"判不了"。
仓库里那份报告的判定表(原样:两红 + 一判不了)这不是功能缺失,这是这个工具最要紧的地方(下面第二节说)。

复算页实测:拖入仓库里的那份报告 → PASS(值由真文件算出)
二、凭什么信它:双击一个网页,10 秒
不用装 Python,不用注册,不用联网。
① 双击 复算指纹.html
│ (就是网页,源码就在里面)
▼
② 把报告拖进去
│
▼
③ 屏幕上一个词
PASS ── 文件与它自带的指纹值一致
FAIL ── 对不上(哪怕只多一个空格)
报告的最后一页写着它的"报告指纹",算法也写在旁边:
把「报告指纹」那一行里
sha256:
之后的
前 16 位
清空 →
对剩余全文按 UTF-8 算 SHA-256 → 取前 16 位。
你自己用任何语言、任何工具照做一遍,应该得到同一个值。 我们样例的值是:
sha256:e54c748c2dde58ca
三、★ 它最值钱的地方:它能红
只给你看 PASS,你没法判断它是不是"永远绿"。
所以仓库里放了第二个文件:同一份报告,标题多了一个「?」。
复算页实测:同一份报告,标题多一个「?」→ FAIL拖它进去 —— FAIL,实算变成 7a903e7cb4a6cb29。
同一份报告
├ 原样 → PASS
└ 标题加个「?」 → FAIL
这就是"它没坏"的证明。
这也解释了我们为什么不发"功能列表":一个只在顺利时给你绿灯的东西,你没法验它。
四、"可复算"到底复算了什么(说清,别夸大)
它复算的是一件事:这份文件,与它自己声称的那个值,对不对得上。
它不能证明:
- ❌ 内容对不对(判据是不是合理、程序是不是到位)
- ❌ 时间(没有可信时间戳,时间取本机时钟)
- ❌ "从来没被改过"——★ 这条要特别说:
指纹是
写在同一份文件里
的。
改正文 → 重算 → 把指纹行改掉 ⇒
照样是 PASS
。
所以它证明的是"字与签名对得上",
不是"没被改过"
。
要防"改完再重签",得有
仓库之外
的锚——比如发布时的
tag / 提交哈希
。
这话不好听,但一个让你"不必相信我们"的东西,第一句就该把自己的边界说清楚。
五、它里面没有什么(这点比有什么更重要)
| 有 | 没有 |
|---|---|
| 一份样例报告 | ❌ 引擎 |
| 一份样例材料(合成) | ❌ 判据集 / 规则库 |
| 一页离线复算网页 | ❌ 客户数据 |
| 一份"改一个字就红"的对照 | ❌ 任何密钥 |
规则库和引擎是不出去的。放出来的只有产物 + 复算方法。
你能验我,但我不把方法交给你——这两件事可以同时成立,而且必须同时成立,否则要么不可验,要么白送。
六、四句话,先说清(比多判一条重要)
- 它不供签署。 样例报告不是审计报告,不能作为签署依据。
- 它不得用于对外质证、诉讼或向监管提交。 那一档,须由具备资质的主体出具。
- 它不出具人。 报告上的出具人栏由使用人自己填,工具不为那一栏背书。
- 「没问到」不等于「通过」。 材料没呈现、或判据不适用,就记"判不了",不记绿。
七、给谁用
- 被追责过的机构:下次要能说清"我们当时核到哪一步";
- 质控与复核人:复核意见要写得出来、有依据、能被人复核;
- 想把 AI 参与的工作留痕归档的团队:AI 干了哪几段、人核了哪几条,分得开。
如果你只是想"让 AI 多判几条",这个工具会让你失望——它宁可说"判不了"。
八、获取
仓库(公开,MIT):
https://github.com/LiaoJim-hub/zhutiaoke-sample/tree/main
进去就能做的事:
- 打开
复算指纹.html(下载到本地,双击); - 拖
样例报告·底稿三查.md→ 应显示 PASS; - 拖
…改一个字(FAIL 演示).md→ 应显示 FAIL。
三个锚值(README 里也有,用来防"连 README 一起改"):
报告 sha256:e54c748c2dde58ca
改字版 应算得 7a903e7cb4a6cb29
材料 sha256:b893302442e76faa
最后一句:
一个工具最硬的时刻,不是它说"通过"的时候,
而是
它敢让你去改一个字,看它红不红
。