不用自己看命令。点一下复制,粘给任何 AI 助手,它会替你把整个流程跑完并告诉你结论。
你手上有一份山海交付的归档包和一张凭证。用下面这把公钥, 可以自己核对:这个包确实是山海签发的、中途没被改过一个字节。
验证不需要连我们的数据库,也不需要登录。
https://agent.ak2029.com/.well-known/shanhai-signer-2026.pem
带外核对的标准做法是:指纹要从一个独立渠道拿,再和公钥算出来的指纹比。
顺序很重要 ——
三样东西放在同一个空目录里:
archive.zipreceipt.jsonpubkey.pem(从上面地址下载)然后跑:
python3 verify-provenance.py \ --archive archive.zip \ --receipt receipt.json \ --pubkey pubkey.pem
看到下面这段,就是真的:
[verify] ✓ 包本体一致: sha256=… bytes=… [verify] ✓ 签名有效(Ed25519 · 山海 signer) 结论:这个包是真的。
0 全过 ·
1 包被改 ·
2 凭证缺字段(被裁剪)·
3 签名无效(不是山海签的,或内容被改过)·
9 用法或文件问题
cryptography 一个库,单文件,
不联网、不读配置、不查我们的数据库。
源码你可以自己看,改一行都会导致验不过 —— 就是这么个东西。
公钥会轮换。「会过期」这件事,你现在就该知道。
| 项 | 规则 |
|---|---|
| 当前签发公钥 | shanhai-signer-2026.pem(Ed25519) |
| 轮换前公告 | 轮换前至少提前 30 天在本页与官网公告新公钥及指纹 |
| 旧公钥保留 | 轮换后至少保留一个审计周期(不少于 5 年),用于验证历史凭证 |
| 历史凭证 | 用旧公钥签发的凭证永远可验,不因轮换失效 |
| 多个公钥并存 | 轮换过渡期内新旧公钥同时在线,文件名带年份区分 |
issuedAt 时间,
落在哪把公钥的有效期内,就用哪把。凭证文件里不写公钥地址 —— 避免「公钥和凭证一起被换」。