解码与验签

JSON Web Token 解码与验签

三段 base64url、一个要么真要么假的签名,以及一个要么包含此刻要么不包含的有效期。这个工具在离线状态下回答这三件事,答案是否定时会给出确切原因。

真实的签名校验校验 exp、nbf、iss、aud签发新令牌内容不离开浏览器
JWT 令牌
尚未验证
密钥或口令alg:

密钥只在本标签页中由浏览器的加密模块使用,不会被发送到任何地方。

1 × errorCtrl+↵ · Alt
继续处理

工作方式

1

粘贴令牌

粘贴,或拖入一个文件 —— 哪怕是一行日志:令牌会被从中提取出来,随即被切分、解码并检查格式问题。

2

填入密钥

文本、base64 或十六进制的共享密钥,PEM 公钥,JWK,或者整份 JWKS —— 与令牌 kid 匹配的条目会自动选中。

3

验证

点一下按钮:由浏览器自带的加密来算。你会得到有效、无效,或者密钥用不了的确切原因 —— 而不是一句含糊其辞。

4

继续深入

按你的服务期望校验声明,在构建器里签发一个新令牌,或者把载荷交给套件里的另一个工具。

签名是真的在校验

HS256/384/512、RS、PS 和 ES(含 P-521 上的 ES512),由浏览器自带的 Web Crypto 完成校验。没有服务器,没有第三方库,不上传。

声明不只展示,还会判定

按你设定的时钟偏差检查 exp、nbf、iat,再加上你的服务期望的签发者、受众和主体。每一项都会明确给出通过、失败或跳过。

看得见的有效期

只有真的存在期限时倒计时才会走,进度条会显示此刻位于 nbf 与 exp 之间的什么位置。

不只读令牌,还能签发

编辑头部和载荷,选择算法,然后签名。结果会直接回到解析视图,让你亲自验证刚做出来的东西。

各种密钥格式

文本、base64 或十六进制的密钥;PEM 公钥;单个 JWK;或整份 JWKS —— 与 kid 匹配的条目会自动选中。

把攻击直接点名

alg: none、空签名、是合法 JSON 却不是对象的载荷、从 URL 里带出来的 base64 —— 每一种都会被如实指出。

不上传任何内容

令牌和密钥只在本标签页的加密模块里使用,关掉就没了。根本不存在可以接收它们的服务端。

交接给套件里的其他工具

把声明直接送到 JSONFlow、DiffSnap、Base64Bolt 或 Hash Bolt,无需下载再上传。

jwt 解码

一个也会说「不」的解码器

粘贴令牌就能读懂它,加上密钥就能证明它。用浏览器自带的加密做真实签名校验,按你的服务期望校验声明,还有一个能重新签发令牌的构建器。

浏览器本来就带着加密能力

Web Crypto 是 HMAC、RSASSA-PKCS1-v1_5、RSA-PSS 和 ECDSA 的完整实现,每个浏览器都免费自带。解码、验签、声明校验和签发全都走它,就在这个标签页里,不发出任何请求。

为真正的排查而做,不是为演示

为真正的排查而做,不是为演示

下午三点会冒出来的问题:这个 401 是令牌过期,还是网关上的密钥不对?客户端发的 aud 是 API 期望的那个吗?那个 kid 还在 JWKS 里吗?粘贴令牌、粘贴密钥集,就能得到带理由的答案 —— 包括那些不只是无效、而是根本坏掉的令牌。

令牌就是凭据

JWT 通常携带一个身份,而签名密钥则是铸造它们的东西。这两样在这里都不会被发送到任何地方:本工具没有服务端、没有账号、不对你粘贴的内容做分析。关掉标签页两者就都没了,因为这个标签页的内存是它们唯一存在过的地方。

常见问题

Q我的令牌或密钥会被上传吗?+

不会。解码、签名校验和签发都通过 Web Crypto API 在你的浏览器里完成。根本不存在可以接收它们的服务端,两次访问之间也不保存任何东西。

Q它真的能校验签名吗?+

能,这正是这一版的重点。HS256/384/512 粘贴共享密钥;RS、PS、ES 粘贴 PEM 公钥、JWK 或 JWKS。计算由浏览器完成,结论是有效、无效,或者密钥用不了的具体原因。

Q支持哪些算法?+

HS256、HS384、HS512、RS256、RS384、RS512、PS256、PS384、PS512、ES256、ES384 和 ES512;浏览器提供 Ed25519 时还支持 EdDSA。ES512 按规范使用 P-521。

Qalg: none 会怎样?+

它会被标记为未加签令牌,校验永远拒绝它。没有签名的令牌正是这项检查存在的理由,所以它绝不会得到绿色对勾。

Q我能创建令牌,而不只是读取吗?+

可以。构建标签页允许你编辑头部和载荷、选择算法、当场生成密钥或 RSA/EC 密钥对,然后签名。结果会直接回到解析视图,让你验证自己刚做出来的东西。

Q声明校验做了什么?+

它们把令牌与一个验签方会提出的要求作比较:按你设定的时钟偏差检查 exp、nbf、iat,可选的最大存活时间,以及你的服务期望的签发者、受众和主体。每一行会通过、失败,或者在你没有要求时被跳过。

相关搜索

jwt 解码jwt 签名校验jwt 调试json web tokenjwks签发 jwtjwt 声明hs256 rs256
oLoveTools 工具集的一部分
oLoveTools

在本地解码、验签并签发 JSON Web Token,并附上原因。

浏览器本来就带着加密能力

Web Crypto 是 HMAC、RSASSA-PKCS1-v1_5、RSA-PSS 和 ECDSA 的完整实现,每个浏览器都免费自带。解码、验签、声明校验和签发全都走它,就在这个标签页里,不发出任何请求。

为真正的排查而做,不是为演示

下午三点会冒出来的问题:这个 401 是令牌过期,还是网关上的密钥不对?客户端发的 aud 是 API 期望的那个吗?那个 kid 还在 JWKS 里吗?粘贴令牌、粘贴密钥集,就能得到带理由的答案 —— 包括那些不只是无效、而是根本坏掉的令牌。

令牌就是凭据

JWT 通常携带一个身份,而签名密钥则是铸造它们的东西。这两样在这里都不会被发送到任何地方:本工具没有服务端、没有账号、不对你粘贴的内容做分析。关掉标签页两者就都没了,因为这个标签页的内存是它们唯一存在过的地方。

jwt 解码jwt 签名校验jwt 调试json web tokenjwks签发 jwtjwt 声明hs256 rs256

常见问题

我的令牌或密钥会被上传吗?

不会。解码、签名校验和签发都通过 Web Crypto API 在你的浏览器里完成。根本不存在可以接收它们的服务端,两次访问之间也不保存任何东西。

它真的能校验签名吗?

能,这正是这一版的重点。HS256/384/512 粘贴共享密钥;RS、PS、ES 粘贴 PEM 公钥、JWK 或 JWKS。计算由浏览器完成,结论是有效、无效,或者密钥用不了的具体原因。

支持哪些算法?

HS256、HS384、HS512、RS256、RS384、RS512、PS256、PS384、PS512、ES256、ES384 和 ES512;浏览器提供 Ed25519 时还支持 EdDSA。ES512 按规范使用 P-521。

alg: none 会怎样?

它会被标记为未加签令牌,校验永远拒绝它。没有签名的令牌正是这项检查存在的理由,所以它绝不会得到绿色对勾。

我能创建令牌,而不只是读取吗?

可以。构建标签页允许你编辑头部和载荷、选择算法、当场生成密钥或 RSA/EC 密钥对,然后签名。结果会直接回到解析视图,让你验证自己刚做出来的东西。

声明校验做了什么?

它们把令牌与一个验签方会提出的要求作比较:按你设定的时钟偏差检查 exp、nbf、iat,可选的最大存活时间,以及你的服务期望的签发者、受众和主体。每一行会通过、失败,或者在你没有要求时被跳过。

© 2026 oLoveTools关于

JWTBolt | 免费在线 JWT 解码、验签与签发

在本地解码并验证 JWT 签名,支持 HS256、RS256、PS256、ES256 等。校验 exp、nbf、iss、aud,粘贴密钥、PEM、JWK 或 JWKS,还可签发新令牌。全程在浏览器中完成。

一个 JWT 调试器在 base64 之外应当给你的东西

把令牌按点号切开、再对其中两段做 base64 解码,大约十五行 JavaScript 就够了 —— 所以网上每个 JWT 页面都会。它也是最没用的那部分。真正卡住排查的问题是:签名是不是真的、此刻令牌是否处在有效期内、声明是否符合消费方服务的要求 —— 而这些,格式化过的载荷一个也答不了。这个工具在浏览器里把三个都答了:签名走 Web Crypto API,支持 HS、RS、PS、ES 算法;时间窗按你掌控的时钟偏差判断;签发者、受众和主体则与你告诉它的期望值比对。

出错的方式和顺利的路径同样重要。载荷是合法 JSON 却不是对象的令牌,过去会把页面变成空白;在这里它会被如实报告。从 URL 里带着加号回来的 base64、无法解码为合法 UTF-8 的段、空签名、被设成 none 的 alg、根本没有该令牌 kid 条目的 JWKS —— 每一种都有自己的提示,而不是笼统一句「无效令牌」。而且签名密钥本身就是一份凭据,所以这些都不会离开标签页:你粘贴的密钥只交给浏览器的加密模块,别无他处 —— 这也正是你在复现缺陷时可以放心用真实密钥使用构建器的原因。

常见问题

我的令牌或密钥会被上传吗?

不会。解码、签名校验和签发都通过 Web Crypto API 在你的浏览器里完成。根本不存在可以接收它们的服务端,两次访问之间也不保存任何东西。

它真的能校验签名吗?

能,这正是这一版的重点。HS256/384/512 粘贴共享密钥;RS、PS、ES 粘贴 PEM 公钥、JWK 或 JWKS。计算由浏览器完成,结论是有效、无效,或者密钥用不了的具体原因。

支持哪些算法?

HS256、HS384、HS512、RS256、RS384、RS512、PS256、PS384、PS512、ES256、ES384 和 ES512;浏览器提供 Ed25519 时还支持 EdDSA。ES512 按规范使用 P-521。

alg: none 会怎样?

它会被标记为未加签令牌,校验永远拒绝它。没有签名的令牌正是这项检查存在的理由,所以它绝不会得到绿色对勾。

我能创建令牌,而不只是读取吗?

可以。构建标签页允许你编辑头部和载荷、选择算法、当场生成密钥或 RSA/EC 密钥对,然后签名。结果会直接回到解析视图,让你验证自己刚做出来的东西。

声明校验做了什么?

它们把令牌与一个验签方会提出的要求作比较:按你设定的时钟偏差检查 exp、nbf、iat,可选的最大存活时间,以及你的服务期望的签发者、受众和主体。每一行会通过、失败,或者在你没有要求时被跳过。

相关搜索

jwt 解码, jwt 签名校验, jwt 调试, json web token, jwks, 签发 jwt, jwt 声明, hs256 rs256