支持带不带 Bearer 前缀,自动去掉首尾空格与换行。全程在本页解码,不会发到任何服务器。
过期判断用你电脑的时间,如果本机时钟不准,结果也会跟着偏。
JWT 规范要求 exp / iat 必须是秒级;如果解析出的年份离谱(1970 或几万年后),基本就是签发方用了毫秒,切到毫秒再看。
把 token 粘进来,立刻看清里面写了什么、什么时候过期。
你的 token 里出现的字段会高亮;标准字段按 RFC 7519 定义,中间那列是常用名。
header 里的 alg 只是「声明」,不代表本工具验证过它。下面这张表告诉你每个算法大概什么意思。
| alg | 含义 | 要留意什么 |
|---|---|---|
| HS256 / HS384 / HS512 | 对称签名(HMAC + SHA),签发校验用同一个密钥 | 密钥泄露 = 全都可伪造;分布式场景密钥分发要小心 |
| RS256 / RS384 / RS512 | 非对称签名(RSA + SHA),私钥签、公钥验 | 服务端务必用公钥验签,别信 header 里的算法 |
| ES256 / ES384 / ES512 | 非对称签名(ECDSA),签名短、性能好 | 同样是私钥签公钥验,注意曲线是否受支持 |
| PS256 / PS384 / PS512 | RSA-PSS 概率签名,比 RS 更规范 | 部分老旧库不支持,联调时容易踩坑 |
| none | 不签名,等于完全没保护 | 历史著名漏洞:把 alg 改成 none 骗过服务端 |
| (空 / 缺失) | 没写 alg | 需要服务端自己有默认策略,否则易被绕过 |
⚠️ 重要:本工具不校验签名。
签名验证必须使用服务端密钥(对称算法的密钥 / 非对称算法的公钥),本工具拿不到也不会去拿,因此它只能告诉你 token 里写了什么,无法证明这个 token 是真的、没被改过。请勿在生产环境依赖本工具的结论做鉴权判断。
另外,JWT 的前两段只是 Base64URL 编码而非加密,任何人都能解开看到内容,所以绝不要把密码、身份证号、手机号等敏感明文放进 payload。
粘贴 token 时请留意:token 等同临时身份凭证,分享结果前记得抹掉签名段,也不要把生产 token 粘到任何你不信任的在线服务里。本工具纯前端解码,内容不上传、不保存。
JWT 看着像一串乱码,其实结构特别规整:
头部(header) . 载荷(payload) . 签名(signature),三个部分用英文句点隔开。
先记住一句话:JWT 不是加密,只是编码。前两段就是 Base64URL 编码后的 JSON,谁都能解开看;真正提供防篡改能力的是第三段签名。
所以这个工具能做的事很明确:
· 把三段拆开,header 解出签名算法 alg、类型 typ、密钥 id kid;
· payload 解出签发者 iss、主体 sub、受众 aud、生效时间 nbf、签发时间 iat、过期时间 exp、唯一编号 jti,以及业务自己塞进去的各种字段;
· 用你本机时间实时算还剩多久过期,过期了会告诉你是哪天到期的。
实际开发里最常遇到的坑,十有八九就是这几个:
① 接口突然全部 401 —— 先看 exp,大概率是 token 过期了,或者签发服务的时钟和网关不一致;
② 本地能用测试环境报错 —— 多半是本机时钟和服务器差了几分钟,JWT 对时间很敏感,建议都开 NTP 自动校时;
③ exp 单位搞错 —— 标准必须是秒级时间戳,有些框架直给了毫秒,结果解析出来是 1970 年或者几万年以后;
④ nbf 还没到 —— token 处于「未来生效」状态,服务端会拒绝;
⑤ alg = none —— 这是历史上著名漏洞,等于没有签名,任何服务端都不应该接受。
关于安全,再强调三遍:
· 别在 payload 里放敏感信息(密码、身份证、手机号、详细住址);
· 本工具不校验签名,校验必须拿密钥在服务端做;
· token 等同于临时身份凭证,粘贴到任何在线服务前都要想想风险。
所有的解码都在你这台电脑的浏览器里完成,token 不会离开你的设备,关掉页面就什么都不剩了。
怎么解析:
① 按 . 切成三段,要求至少两段(header.payload),第三段签名可以缺失;
② 每段做 Base64URL → Base64 转换(- 换 +、_ 换 /,再补足末尾的 =);
③ atob 解出字节串,再按 UTF-8 还原中文,最后 JSON.parse 得到对象;
④ 逐个 claim 展示,标准 claim 自动附加中文释义,表格里同步高亮;
⑤ 过期判断:exp 与本机当前秒数相减,正数就是还剩多久,负数就是已过期多久。
它不做:不校验签名真伪、不做加解密、不校验 aud / iss 是否匹配、不上报任何内容。
想验签请用服务端库(jjwt、jsonwebtoken、PyJWT 等),或命令行 openssl / jwt-cli。
审核通过后就会展示在留言板上,稍安勿躁~
还没有留言,来抢沙发吧!