JWT 解码器

token 粘进去就能看清 header、payload 和时间相关的声明,并可以用共享密钥在本地校验 HS256 签名。 整个过程不发任何网络请求 —— 本站没有能接收它的后端。

token 不会离开这个页面 —— 本站是纯静态资源站,没有任何后端接口可以接收它。你可以打开浏览器的网络面板确认:解码过程零请求。

Header

Payload

本地验签(HS256/384/512)

Signature

JWT 里有什么,以及哪些事它保证不了

三段 base64url 用点分隔:header 说明算法,payload 是声明,第三段是签名。 前两段不是加密的,只是编码 —— 任何拿到 token 的人都能读出里面的内容, 所以 payload 里不该放密码、身份证号这类东西。签名只保证「没被改过」,不保证「看不见」。

最常用到解码器的原因是查过期。上面把 expiatnbf 换成了真实时间并算了剩余时长 —— 这三个字段是 Unix 秒,不是毫秒,填错三个数量级是排查认证问题时最常踩的坑。

验签只支持 HS256/384/512:对称密钥可以在本地用 WebCrypto 算 HMAC 并比对。 RS/ES/PS 系列需要签发方的公钥或 JWKS,这里会明确告诉你「本地无法校验」,而不是假装通过。 另外如果 header 里 algnone,页面会直接警告 —— 那是一个经典漏洞:服务端若不校验算法白名单,任何人都能伪造 token。

为什么强调「不出浏览器」:大家往解码器里粘的常常是生产环境的真 token。 本站是纯静态资源部署(Cloudflare assets-only Worker,没有任何服务端代码), 物理上不存在一个能接收它的接口。你可以打开开发者工具的 Network 面板,一边粘一边看:零请求。

其他工具