公钥检查

JWT 解码分别查看签名与声明

先读取令牌,再明确指定算法、公钥及预期声明。

JWT 解码

JWT 令牌

令牌与密钥仅保留在当前页面内存中,不请求远程密钥,不存储输入。

解码 JSON 与报告

未验证:解码不代表令牌有效。

签名与声明设置

请自行选择预期算法。签名匹配不证明发行者身份、权限、撤销状态或令牌整体有效。

用户提供的公钥

单个公钥 JWK 或 SPKI PEM PUBLIC KEY。RS256 要求 2048–8192 位 RSA,ES256 要求 P-256。不接受私钥或远程 JWKS。

exp、nbf、iat 与签名单独检查。本工具将未来的 iat 标记为未通过。缺少时间声明保持缺失;发行者或受众留空表示不检查。UTC 显示精确到毫秒,原始小数保留在报告中。

令牌上限 100,000 字符;公钥 20,000;测试声明 50,000。仅接受严格 base64url、UTF-8 与 JSON 对象;拒绝重复键及转换后数值变化。

测试令牌生成器

粘贴紧凑格式的 JWT 开始检查。

JWT 解码常用于排查接口拒绝访问:查看头部和声明,核对发行者、受众及时间字段,判断当前请求带的是不是预期令牌。页面首先展示可读数据,并明确标为签名未验证。

JWT 解析成功只能说明内容可读。JWT 验签需要另外指定可信来源的公钥;JWT 过期时间和签名是否匹配也是两项不同的检查,不能合并成一个笼统的有效标记。

为什么使用这个 JWT 解码工作台

避免把内容可读当作可信

JWT 解码后仍然能看到未验证状态。过期令牌可能具有匹配的签名,而内容正常的 JSON 也可能没有可信签名;把时钟检查和签名状态拆开,更容易解释接口为什么拒绝请求。

同一令牌拆为可读数据、公钥签名检查和单独的时钟检查。

在独立草稿中试验

测试生成器使用本地临时密钥对,先显示测试令牌和公钥预览。应用才一起替换主输入与验证设置,撤销可恢复之前的输入和结果,避免生成练习覆盖当前排查内容。

独立测试草稿先生成令牌和公钥预览,再通过应用步骤替换输入。

先明确每项检查的依据

01

分清自动解码与手动验签

自动解码在修改后等待 350 毫秒执行;关闭后可用解码按钮或 Ctrl/Cmd+Enter。这个开关不会自动验签,也不会自动生成测试密钥。

02

从令牌之外提供预期值

明确选择 RS256 或 ES256,并粘贴单个公钥 JWK 或 SPKI PUBLIC KEY PEM。需要核对发行者或受众时,填写预期值,不能直接把头部密钥引用当作可信依据。

03

导出前核对参考时刻

时间留空时,每次运行取当前时刻;填入 Unix 秒便于复现问题。当前时间按钮先预览替换;输入或参数变化后,旧报告禁止导出,直到重新检查。

从格式到声明逐项定位

可读头部与声明

严格解码展示两个 JSON 对象及签名信息。报告区分令牌声明的算法和用户选定的算法,kid 与 URL 只作为待核实信息显示。

明确的 JWT 公钥验证

RS256 接受 2048–8192 位 RSA 公钥,ES256 接受 P-256。签名不匹配、密钥格式错误、不支持算法等情况分别提示,便于定位配置问题。

可复现的时间检查

exp、nbf、iat 使用参考时刻与 0–86400 秒时钟容差检查。未来 iat 按本工具策略标记未通过,缺少时间声明不会伪装成已经通过。

发行者与受众对照

iss 按字符串精确匹配;aud 可以是字符串或包含预期受众的字符串数组。未填写预期值就保持未检查,签名匹配也不会给出访问授权。

格式、密钥与范围限制

仅接受三段紧凑格式
输入原始令牌,移除 Bearer 前缀、首尾空格及填充符。五段 JWE 不解码或解密。none 可以带空签名进行查看,但始终不会标记为验签成功。
严格文本与数值解析
头部和声明必须是 UTF-8 JSON 对象。重复键、未配对代理项、非规范 base64url 均拒绝。可表示的小数受支持;转换时会暗改数值的数字必须报错。
仅导入公开验证材料
接受单个公钥 JWK 或完整 SPKI PUBLIC KEY PEM,不接受私钥、对称密钥。JWK 的 alg、use 或 key_ops 与验证用途冲突时也会拒绝,不提供通用密钥转换。
不远程取密钥,不验证扩展
jku、x5u、kid、内嵌 jwk 和 x5c 都是不可信元数据,不会触发请求或自动选钥。存在 crit、b64 或 zip 的令牌不进行签名验证。
大小与时间显示
令牌上限 100,000 字符,公钥 20,000,测试声明 50,000。超出可表示日期范围的时间无效。UTC 显示到毫秒,原始小数仍保留在报告中。生成结果也必须符合令牌上限,超限会失败,不会截断。
测试生成不代替认证
生成器默认关闭,明确生成后才创建临时密钥对。应用预览不会自动验签;签名、发行者、受众和时间检查不覆盖权限授予或撤销查询。

JWT 解码常见问题

JWT 解码后能证明令牌有效吗?

不能。解码只是读取数据,即使 JSON 看起来正常也可能被伪造。需要使用独立获取的公钥明确验签,再根据应用要求核对发行者、受众、时间和权限。

能验证 RSA 或 ECDSA 签名吗?

可以验证 RS256 与 ES256:前者需要 2048–8192 位 RSA 公钥,后者需要 P-256。请明确选择算法并输入单个公钥 JWK 或 SPKI PEM,其他 RSA、ECDSA 变体不在验签范围内。

JWT 的过期状态怎么判断?

exp 使用 Unix 秒。参考时刻减去容差达到 exp 时,过期检查不通过。时间留空就取运行时的当前时间;设备时钟错误或复现时刻设置不对都会影响结果。

加密的 JWE 能读取吗?

不能,本工具拒绝五段 JWE。加密载荷需要专门解密流程,本页只检查普通紧凑令牌,也不会请求用于解密的私钥。

alg 为 none 表示什么?

none 表示未签名内容。带空签名的内容可以解码查看,但本工具永远不会将其标记为签名已验证;可读性不能作为真实性证明。

报告有意外结果?

继续检查当前令牌

在 JWT 解码工作台中明确算法、公钥及参考时间,确认报告对应当前输入后再复制或下载。