跳到工具区
安全

JWT 在线解析与校验工具

在浏览器本地解码、校验和签名 JWT,并区分可读内容、签名完整性与业务 Claims 策略。

输入0 个字符
结果0 个字符
就绪

想要更顺手的原生工作流?

把「JWT 在线解析与校验工具」放到一个快捷键里。

DevSexy Mac 版保留同样私密的本地处理,同时提供全局快捷键;不用管理浏览器标签页,需要时直接呼出。

全局快捷键可离线使用本地处理
免费试用 Mac 版

当前浏览器工具仍然免费。

逐段查看依据 · 每个结论都标明验证范围

能解码,不代表已验证。

读出 Header 和 Payload,只能证明三段式 JWS/JWT 的前两个 Base64URL 段可以解析为 JSON。真正的信任还需要固定允许的算法、匹配的密钥、有效的时间窗口,以及符合应用配置的 issuer 与 audience。

01已解码 · 不可信

Header

{ "alg": "HS256", "typ": "JWT" }
02已解码 · 不可信

Payload

{ "sub": "123", "aud": "devsexy-api", "exp": 1766073600 }
03校验前只是不可读字节

Signature

SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

解码并验证公开测试令牌

两个实例使用同一份公开 HS256 测试数据,对照可读载荷与指定算法、密钥、签发者、受众和时间下的验证。

载入实例会替换令牌和全部选项,包括密钥。该公开测试数据不提供任何访问权限,密钥不能用于真实应用。

读取声明,不信任签名

解码 · HS256 · 不提供密钥。此令牌已在 2024 年过期,解码仍可读取声明。

输入

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJkZW1vLXVzZXIiLCJpc3MiOiJodHRwczovL2lzc3Vlci5leGFtcGxlLnRlc3QiLCJhdWQiOiJkZXZzZXh5LWRlbW8iLCJuYmYiOjE3MTAwMDAwMDAsImV4cCI6MTcxMDAwMzYwMH0.gAP2idduo9EHFyecHJohqwzl7F3g8Bvp3xDvVWyCHsI

主体是 demo-user,输出明确表示没有检查签名。

"sub": "demo-user"
Signature: not checked — decoding never proves authenticity

在有效期内的固定时间验证

验证 · HS256 · 公开测试密钥 devsexy-public-example-key-do-not-use-in-production · 签发者 https://issuer.example.test · 受众 devsexy-demo · 验证时间 1710001800 秒 · 时钟偏差 0。

输入

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJkZW1vLXVzZXIiLCJpc3MiOiJodHRwczovL2lzc3Vlci5leGFtcGxlLnRlc3QiLCJhdWQiOiJkZXZzZXh5LWRlbW8iLCJuYmYiOjE3MTAwMDAwMDAsImV4cCI6MTcxMDAwMzYwMH0.gAP2idduo9EHFyecHJohqwzl7F3g8Bvp3xDvVWyCHsI

在指定历史时刻验证通过。清空验证时间后会使用当前时钟,此令牌已过期;历史通过不代表当前有访问权限。

Signature: verified with the selected HS256 key, claim, and clock policy
Issuer policy: https://issuer.example.test
Audience policy: devsexy-demo

信任阶梯

每一级只证明紧接着的那件事。

01

Compact 结构

正好包含三个非空的 URL-safe 段

02

JSON 已解码

Header 与 Claims 可读,但尚不可信

03

签名已校验

在预期算法和正确密钥下证明完整性

04

时间有效

按明确的时钟偏差策略检查 exp / nbf

05

Issuer 与 Audience 匹配

应用配置与对应 Claims 一致

06

业务策略通过

角色、租户、scope、nonce 与撤销规则均满足要求

算法 / 密钥契约

Token 里的 alg 是输入,不是安全策略。

HS256 / 384 / 512共享密钥

签发方与校验方持有同一密钥

此工作台支持

RS256 / 384 / 512 · PS256 / 384 / 512RSA 公钥

私钥签名,公钥校验

支持;PEM 密钥类型与算法必须匹配

ES256 / 384 / 512EC PEM 密钥

密钥类型和曲线必须匹配

支持;PEM 密钥类型与算法必须匹配

JWK / JWKS / none / EdDSA不接受

不读取远程密钥,也不接受无签名 JWT

不在此工作台允许列表中

NumericDate 时钟

JWT 时间 Claims 使用 Unix 时间戳秒数。

当前 · 1,716,073,600

iat1,716,070,000签发于 60 分钟前
nbf1,716,072,700已生效 15 分钟
exp1,716,075,400将在 30 分钟后过期

把毫秒误当秒会让日期偏到数万年以后。时钟偏差应是校验器中明确且有限的容差设置,不能成为忽略过期时间的理由。

Issuer 与 Audience 检查点

即使签名有效,签发方不受信任或受众不匹配也必须拒绝。

isshttps://id.example.test/

与受信任的签发方精确匹配

aud["devsexy-api", "account"]

按应用策略包含要求的 audience

tenantproduction-eu

由业务策略检查的私有 Claim

scopetools:read

授权决策仍由资源服务器负责

Debugger 风险台

把调试器当作可能接触 Bearer Token 的敏感工作台。

Bearer Token 泄漏

高风险

URL、截图、日志、剪贴板历史和工单中的 Token 都可能被重放。

弱 HMAC 密钥

高风险

过短或可猜测的共享密钥可能被离线暴力破解。

算法混淆

严重

必须固定算法 allowlist,绝不能让攻击者控制的 alg 决定校验策略。

不可信的 kid / JWK URL

高风险

Header 中的密钥提示不能触发不受限制的文件读取或网络请求。

浏览器内密钥处理

需评估

DevSexy 不会上传密钥;仍应只用测试密钥,生产签名密钥应留在受控基础设施。

检查令牌周围的证据

解码独立 Base64URL 片段

不是完整三段 JWT 的编码文本,可使用 Base64 工具。

把 exp、nbf 或 iat 从秒转换为日期

核对 UTC 时刻,避免把秒误当成浏览器毫秒。

检查请求 URL 编码

单独核对查询转义;URL 解析不能验证令牌身份。

在 Mac 上本地调试测试令牌

使用离线工具箱重复检查,并坚持使用测试凭据。

直接回答

什么是 JWT 在线解析与校验工具?

在线解码 JWT Header 和 Payload,使用支持的 HMAC 或 PEM 密钥在浏览器本地校验签名,检查 exp、nbf、iat 等 NumericDate,并区分 decode、verify 与业务 Claims 策略。

它能做什么?

  • 解码
  • 验证
  • 签名

如何使用 JWT 在线解析与校验工具

  1. 01

    先解码测试令牌

    查看三个紧凑片段、算法与声明。解码不校验签名,也不会使过期令牌重新有效。

  2. 02

    设置验证策略

    选择预期算法与匹配的本地密钥。按应用配置填写签发者、受众、时钟偏差及可选自定义断言,不应直接信任令牌自己的声明。

  3. 03

    按指定时间解释结果

    验证时间留空表示当前时钟,实例则明确指定历史时刻。签名与声明检查不涵盖撤销、租户权限或资源授权。

常见问题

过期或被修改的 JWT 还能解码吗?
可以。解码只读取 JSON 头部和声明,不证明真实性,也不执行过期校验。需要使用验证操作,指定预期算法与密钥,并配置声明策略。
实例的 exp 在 2024 年,为什么还能验证通过?
实例将验证时间设为 1710001800 秒,位于当时的有效期内。清空该字段即可使用当前时钟;历史验证通过不代表令牌现在仍有效。
此 JWT 调试器支持哪些密钥与检查?
支持 HS256/384/512 密钥,以及 RSA RS/PS256/384/512 和 EC ES256/384/512 PEM 密钥;可检查配置的签发者、受众、时间和自定义断言。不抓取远程 JWKS,不检查撤销;JWK 输入、EdDSA 与 alg none 不在允许列表中。