改一个字,它就红 —— 一个专门验「核验报告」的小工具

逐条可核 · 开源首发


做完一份核验报告,最怕被问一句:

"这条,你凭什么说核过了?"

答"我看了",不行。答"系统显示通过",也不行——系统凭什么?

我做了一个很小的东西,只回答一件事:

这一条,按这一版规则,核过没核过,谁签的字。

而且这句话,你可以自己验,不用信我。

它不做更聪明的判断,也不打分、不排名。它把"核验工作"做成一份可以当场复算的清点。

今天把它开源了,只有六个文件,没有引擎,也没有规则库:

https://github.com/LiaoJim-hub/zhutiaoke-sample/tree/main


一、它解决什么:报告"看起来核过"和"真的核过",长得一样

这是这一行最难受的地方——

报告写得很齐、格式很漂亮、"已复核"三个字也签了。

可签字不等于复核。真要追问"你复核了哪几项、依据什么、哪一步该发现没发现",往往就散了。

更进一步:报告交出去之后,有没有被人改过? 这也是没人能回答的。

仓库里的样例材料(原样,未改一字)仓库里的样例材料(原样,未改一字)我在样例里用的是一份审计底稿节选(合成的,不是真实底稿)。工具给出三条结论:

判据结论为什么
三表复核底稿红三张表的复核底稿均未见
函证回函是否经转交红回函由被审计单位统一收取后转交 ⇒ 证据链断了
关键审计事项段判不了材料是底稿+报告混装,且主体非上市 ⇒ 这条不适用

注意第三条:它没有硬凑一个"通过",也没有判红,而是说"判不了"。

仓库里那份报告的判定表(原样:两红 + 一判不了)仓库里那份报告的判定表(原样:两红 + 一判不了)这不是功能缺失,这是这个工具最要紧的地方(下面第二节说)。


复算页实测:拖入仓库里的那份报告 → PASS(值由真文件算出)

复算页实测:拖入仓库里的那份报告 → PASS(值由真文件算出)

二、凭什么信它:双击一个网页,10 秒

不用装 Python,不用注册,不用联网。

① 双击  复算指纹.html

        │  (就是网页,源码就在里面)

        ▼

② 把报告拖进去

        │

        ▼

③ 屏幕上一个词



     PASS   ── 文件与它自带的指纹值一致

     FAIL   ── 对不上(哪怕只多一个空格)

报告的最后一页写着它的"报告指纹",算法也写在旁边:

把「报告指纹」那一行里

sha256:

之后的

前 16 位

清空 →

对剩余全文按 UTF-8 算 SHA-256 → 取前 16 位。

你自己用任何语言、任何工具照做一遍,应该得到同一个值。 我们样例的值是:

sha256:e54c748c2dde58ca

三、★ 它最值钱的地方:它能红

只给你看 PASS,你没法判断它是不是"永远绿"。

所以仓库里放了第二个文件:同一份报告,标题多了一个「?」。

复算页实测:同一份报告,标题多一个「?」→ FAIL复算页实测:同一份报告,标题多一个「?」→ FAIL拖它进去 —— FAIL,实算变成 7a903e7cb4a6cb29。

同一份报告

  ├ 原样          → PASS

  └ 标题加个「?」 → FAIL

这就是"它没坏"的证明。

这也解释了我们为什么不发"功能列表":一个只在顺利时给你绿灯的东西,你没法验它。


四、"可复算"到底复算了什么(说清,别夸大)

它复算的是一件事:这份文件,与它自己声称的那个值,对不对得上。

它不能证明:

  • ❌ 内容对不对(判据是不是合理、程序是不是到位)
  • ❌ 时间(没有可信时间戳,时间取本机时钟)
  • ❌ "从来没被改过"——★ 这条要特别说:

指纹是

写在同一份文件里

的。

改正文 → 重算 → 把指纹行改掉 ⇒

照样是 PASS

。

所以它证明的是"字与签名对得上",

不是"没被改过"

。

要防"改完再重签",得有

仓库之外

的锚——比如发布时的

tag / 提交哈希

。

这话不好听,但一个让你"不必相信我们"的东西,第一句就该把自己的边界说清楚。


五、它里面没有什么(这点比有什么更重要)

有没有
一份样例报告❌ 引擎
一份样例材料(合成)❌ 判据集 / 规则库
一页离线复算网页❌ 客户数据
一份"改一个字就红"的对照❌ 任何密钥

规则库和引擎是不出去的。放出来的只有产物 + 复算方法。

你能验我,但我不把方法交给你——这两件事可以同时成立,而且必须同时成立,否则要么不可验,要么白送。


六、四句话,先说清(比多判一条重要)

  1. 它不供签署。 样例报告不是审计报告,不能作为签署依据。
  2. 它不得用于对外质证、诉讼或向监管提交。 那一档,须由具备资质的主体出具。
  3. 它不出具人。 报告上的出具人栏由使用人自己填,工具不为那一栏背书。
  4. 「没问到」不等于「通过」。 材料没呈现、或判据不适用,就记"判不了",不记绿。

七、给谁用

  • 被追责过的机构:下次要能说清"我们当时核到哪一步";
  • 质控与复核人:复核意见要写得出来、有依据、能被人复核;
  • 想把 AI 参与的工作留痕归档的团队:AI 干了哪几段、人核了哪几条,分得开。

如果你只是想"让 AI 多判几条",这个工具会让你失望——它宁可说"判不了"。


八、获取

仓库(公开,MIT):

https://github.com/LiaoJim-hub/zhutiaoke-sample/tree/main

进去就能做的事:

  1. 打开 复算指纹.html(下载到本地,双击);
  2. 拖 样例报告·底稿三查.md → 应显示 PASS;
  3. 拖 …改一个字(FAIL 演示).md → 应显示 FAIL。

三个锚值(README 里也有,用来防"连 README 一起改"):

报告    sha256:e54c748c2dde58ca

改字版  应算得 7a903e7cb4a6cb29

材料    sha256:b893302442e76faa

最后一句:

一个工具最硬的时刻,不是它说"通过"的时候,

而是

它敢让你去改一个字,看它红不红

。