TRUSTFOLIO · TRUST PACKET
✓
有效的可驗證背書
簽章相符,且此刻仍為有效狀態。
於『信義區 320 坪住宅』室內設計案擔任概念主導與客戶溝通,2022–2023
簽發於 2026年6月24日、有效期限:永久
背書人 綠亦 設計總監 · 綠亦有限公司 · 設計總監
關係 前主管
機構已驗證
簽署於 6/24/2026, 3:34:40 AM · kid k1
自行離線驗章
離線驗證只證明內容沒被改、由哪把金鑰簽;是否仍有效(撤銷、效期)要以本頁的即時狀態為準。
- kid
- k1
- 演算法
- Ed25519
簽章(完整 base64)
Q5DSefhp/QsAH7bcPD6VGkFxx7GKsewUGKgoh8I3aGa7JwyOxnDMWQUgjIO7OxjCzH+6e0Wfy4AFn8p++Ah3Aw==
正規化 payload(驗簽位元組,原樣、不重排、不美化)
{"domain":"verified_claim","letterId":"c52f4b12-8eb6-45c4-8824-8512cf994476","signerUserId":"8e9400ab-f29e-40fa-906c-f36bd42891c6","contentSha256":"eb932bd10b8d2b61a5e7a877736be2ddc2b1104bd47d2873f9efb6580e7573c5","sealedAt":"2026-06-24T03:34:40.596Z","kid":"k1"}公鑰端點 /.well-known/trustfolio-keys.json
在已安裝 Node 18 以上的電腦:把下面內容存成 check.mjs,執行 node check.mjs。三個值已填本憑證的原樣,公鑰會自動從公開端點取得;印出 true 代表內容未被改、由這把金鑰簽。
import { verify } from "node:crypto";
const payload = "{\"domain\":\"verified_claim\",\"letterId\":\"c52f4b12-8eb6-45c4-8824-8512cf994476\",\"signerUserId\":\"8e9400ab-f29e-40fa-906c-f36bd42891c6\",\"contentSha256\":\"eb932bd10b8d2b61a5e7a877736be2ddc2b1104bd47d2873f9efb6580e7573c5\",\"sealedAt\":\"2026-06-24T03:34:40.596Z\",\"kid\":\"k1\"}";
const sig = "Q5DSefhp/QsAH7bcPD6VGkFxx7GKsewUGKgoh8I3aGa7JwyOxnDMWQUgjIO7OxjCzH+6e0Wfy4AFn8p++Ah3Aw==";
const kid = "k1";
// 公鑰從公開端點取,不用手貼多行 PEM(Node 18+ 內建 fetch)
const { keys } = await (await fetch("https://trustfolio.andgreen.org/.well-known/trustfolio-keys.json")).json();
const key = keys.find((k) => k.kid === kid);
if (!key) throw new Error("這把金鑰尚未公開:" + kid);
const publicKeyPem = key.pem;
console.log(verify(null, Buffer.from(payload), publicKeyPem, Buffer.from(sig, "base64")));掃描或開啟連結即可即時驗證;送審文件可附此 QR。
驗證永遠免費 · 平台為傳遞與保管方,非保證人 · 每次開啟即時檢查撤銷狀態
verify URL: https://trustfolio.andgreen.org/verify/claim/6b78fffdff0bfacc951f0b4a742e246fd298813937cf7211
sig: Q5DSefhp/QsAH7bcPD6VGkFxx7GKsewUGKgoh8I3aGa7JwyO…
每次開啟都會即時檢查撤銷狀態——簽章有效 ≠ 目前仍有效。
背書一旦被撤銷,這裡會顯示「已撤銷」並不再揭露背書人姓名。