JWT 解码器
token 粘进去就能看清 header、payload 和时间相关的声明,并可以用共享密钥在本地校验 HS256 签名。 整个过程不发任何网络请求 —— 本站没有能接收它的后端。
token 不会离开这个页面 —— 本站是纯静态资源站,没有任何后端接口可以接收它。你可以打开浏览器的网络面板确认:解码过程零请求。
Header
— Payload
— 本地验签(HS256/384/512)
Signature
JWT 里有什么,以及哪些事它保证不了
三段 base64url 用点分隔:header 说明算法,payload 是声明,第三段是签名。 前两段不是加密的,只是编码 —— 任何拿到 token 的人都能读出里面的内容, 所以 payload 里不该放密码、身份证号这类东西。签名只保证「没被改过」,不保证「看不见」。
最常用到解码器的原因是查过期。上面把 exp、
iat、
nbf 换成了真实时间并算了剩余时长 ——
这三个字段是 Unix 秒,不是毫秒,填错三个数量级是排查认证问题时最常踩的坑。
验签只支持 HS256/384/512:对称密钥可以在本地用 WebCrypto 算 HMAC 并比对。
RS/ES/PS 系列需要签发方的公钥或 JWKS,这里会明确告诉你「本地无法校验」,而不是假装通过。
另外如果 header 里 alg 是
none,页面会直接警告 ——
那是一个经典漏洞:服务端若不校验算法白名单,任何人都能伪造 token。
为什么强调「不出浏览器」:大家往解码器里粘的常常是生产环境的真 token。 本站是纯静态资源部署(Cloudflare assets-only Worker,没有任何服务端代码), 物理上不存在一个能接收它的接口。你可以打开开发者工具的 Network 面板,一边粘一边看:零请求。