Volade 生态系统 — 网页工具

JWT 编码解码器

即时解码 JWT:以缩进 JSON 展示头部、payload 与签名并标注各项 claims,支持用密钥验证 HS256 签名或用 PEM 公钥验证 RS256 / ES256,还能编码并签署新令牌、把过期时间转换成可读日期。免费、无需注册、100 % 本地运行:您的令牌永远不会离开浏览器。

6 种处理模式0 字节被发往服务器∞ 个令牌,无大小限制
本工具

您的在线 JWT 解码器

粘贴令牌、header、payload 或从 Authorization 请求头里复制的字符串:每输入一个字符,解码结果就同步更新,无需点击「转换」按钮。

JWT 编码解码器

在线 开发、代码 & 数据
登录
快捷键: Ctrl+Enter 计算
就绪。

                  

                  
签名不会被解密:请到「验证」标签页用密钥或公钥来校验它。
Claim值类型角色
解码、验证与签名在输入时同步执行 · Ctrl+Enter 重新计算当前标签页 · 原生 WebCrypto,无第三方库 · 100 % 本地运行,数据不会离开您的设备。
0,0 0评论 全部工具
免费版还是 Premium?

JWT 解码器免费且无限制:无需账户、无需安装、不发送任何网络请求。Premium 可解锁 Volade 全套生态。

免费实时解码 header、payload 与 claims
免费HMAC HS256 / HS384 / HS512 与 PEM 公钥签名验证
免费编码并签署新令牌,过期时间转换
Premium历史记录与代码片段的加密云端同步
PremiumAPI 访问权限,以及生态工具间共享的脚本
解锁 Premium
功能

解码、验证与编码 JWT,毫无限制

一个引擎搞定读取、完整性校验与令牌签发——数据始终不离开您的设备。

解码 header、payload 与签名

粘贴令牌——全大写、带 Bearer 前缀或带引号都没问题——输入的同时,头部与 payload 就会以缩进 JSON 显示。每个 claim 都会列出取值、类型和角色,时间戳会转换为 ISO 8601 与剩余时长,携带的签名则原样展示。

立即解码

真正的签名验证

校验绝非走过场:MAC 会在精确的 en-tête.payload 字符串上重新计算,再以恒定时间比较的方式与签名比对。HS256、HS384、HS512 使用共享密钥;RS256、RS384、RS512、ES256、ES384 与 PS512 使用 SPKI 格式的 PEM 公钥。结论只有三种:有效、无效,或信息不足。

验证签名

完全私密

不发任何网络请求:解码、验证与签名全部在浏览器中完成,离线也一样。无论是生产环境令牌、预发布环境密钥,还是含你不愿交给任何人的标识符的会话令牌,都能放心处理——包括不交给这个工具本身。

了解更多
工作原理

三步完成令牌的解码、验证或签发

无需安装、无需注册:无论手机还是电脑,工具随时可用。

粘贴令牌

取出「Authorization: Bearer」后面的值,或从 cookie 里复制,粘贴到「解码」标签页:三段会立即拆开并解码。Bearer 前缀、引号和换行都会自动去除。

校验完整性

切到「验证」,选择头部声明的算法,输入密钥或公钥:工具会重新计算 MAC 并给出结论。这是人人都会跳过的一步——也是唯一真正保护内容的一步。

签发令牌

在「编码」中修改 payload,用「过期时间」标签页调整 exp 与 iat,再用 HS256 签名:令牌随即生成,随时可复制。本地历史会保存你最近的令牌,一键即可重新载入。

快速参考

一眼看懂 JWT

大多数开发者在读取令牌之前会核对的要点——完整结构见「结构 & 参考」标签页。

分段角色编码方式示例
1头部(alg、typ)Base64URLeyJhbGciOiJIUzI1NiJ9
2payload(claims)Base64URLeyJzdWIiOiIxMjM0NTY3ODkwIn0
3signatureBase64URLSflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV…
exp过期时间Unix(秒)1793827200 → 2026-11-04
HS256HMAC + SHA-256共享密钥至少 32 字节
RS256RSA + SHA-256PEM 公钥非对称验证
Base64 中的「+」—Base64URL替换为「-」
Base64 中的「/」—Base64URL替换为「_」

「decoder un JWT」是什么意思?

解码 JWT (「jwt decode」「decode jwt online」)就是按两个点把字符串切开,再把每一段用 Base64URL 解码,还原出原始 JSON。不需要任何密钥:头部与 payload 只是被编码,并没有被加密。这正是「jwt payload decoder」或「decode jwt without verify」背后的意图——看看令牌里有什么,而不是宣称它可信。

请注意区分这两种操作。 读取 JWT 本身什么都证明不了:任何人都能造出一个 payload 好看的令牌,再用他自己的密钥签名。 验证 签名才能证明内容没有被第三方篡改。一个不做签名校验就显示「admin: true」的解码器,给你讲的是故事,不是事实。

JWT 的三个分段

字符串正好被两个点分成三部分: header.payload.signature。头部至少包含 alg 和 typ,有时还有 kid 用来指明用的是哪把密钥。payload 中则是 claims,即注册表由 IANA 维护的键值对。签名覆盖按原样拼接的前两段——空格或字符哪怕只改动一处,比对就会失败。

难点在于这些分段用的是 Base64URL 而不是 Base64:加号变成连字符,斜杠变成下划线,而填充 = 则会消失。因此标准 Base64 解码器处理有效的 JWT 会失败。参考标签页中的「Base64URL 与标准 Base64 的对比」表格列出的正是这些替换。

如何验证签名:HS256、RS256、ES256

对于 HMAC 算法——HS256、HS384、HS512——同一个密钥既用于签名也用于验证:工具会重新计算 HMAC(secret, base64url(header) + "." + base64url(payload)) 并把结果与携带的签名比对。这是最常见的情况,也是最危险的:任何持有该密钥的服务都能签发令牌。一个不足 32 字节、又在各环境间复用的密钥,足以让整条链路失守。

对于 非对称算法 ——RS256、RS384、RS512、ES256、ES384、ES512、PS256——验证只需要公钥,因此可以校验第三方签发的令牌,而不必共享其签名密钥。把 PEM 格式的公钥粘贴进来 -----BEGIN PUBLIC KEY----- (SPKI);OpenSSL 导出的原始结果可直接使用。ES256 的签名是原始的 r||s 格式,正是 WebCrypto 所要求的。

最后还要当心 alg confusion :如果你的服务期望 RS256,却接受头部声明 HS256 的令牌,攻击者就能用公钥(此时它成了 HMAC 密钥)签名并通过校验。请在服务端固定期望的算法,绝不要从令牌本身去读它。

exp、iat、nbf:容易踩坑的时间戳

这三个 claim 是 Unix 秒,既没有毫秒也没有时区: iat 1516239022 表示 2018-01-17T21:30:22Z。两个错误反复出现:与毫秒级日期比较(数值大一万倍),以及把时间戳当作本地时间而不是 UTC。「过期时间」标签页支持双向转换,会显示 ISO 8601、本地日期以及剩余或已过时长——精确到秒,一眼就能看出令牌「是否已过期」。

延长有效期并不会提高安全性:把 exp 往后推只会改变显示的值,不会改变签名。如果必须重新签发,请用密钥或私钥为令牌重新签名——这正是「编码」标签页的作用。

Base64URL:为什么标准解码器会失败

Base64URL(RFC 4648 §5)使用的字母表是 A-Z a-z 0-9 - _ ,并且不接受填充。20 个字符的 payload 移除 = 后长度往往不是 4 的倍数:这很正常,并非数据损坏。字符 - 和 _ 对人眼来说有歧义,这解释了反馈中一半的「坏令牌」问题。我们的解码器接受两种字母表、大小写混用、可选填充以及前缀 Bearer.

安全:JWT 做不到的事

JWT 既不提供机密性,也不提供吊销能力。payload 任何人都能读:永远不要往里放邮箱、内部角色或任何你不愿明文发送的个人信息。而且已签名的令牌在 exp 之前一直有效,即便已经退出登录——需要吊销列表,或者由 jti 在服务端跟踪,或者用较短的有效期配合 refresh token。一个好习惯: exp 要短(10 到 15 分钟), iat 要受控, nbf 对齐到 iat, aud 和 iss 收到时都要校验。

推荐人群

前后端开发者(OAuth 2.0、OpenID Connect、REST API)、集成商与 DevOps(身份基础设施、JWKS、密钥轮换)、测试与渗透测试人员(改写 claim、alg confusion、过期)、系统管理员(排查莫名其妙的 401)、学生(理解 Base64URL 与 WebCrypto),以及任何需要 在线 JWT 解码器 的人:快速、完整、私密——再配合 Base64 编码解码器、URL 编码解码器 和 JSON 格式化器.

常见问题

关于 JWT 解码器的常见问题

在解码、验证或签署令牌之前,你想知道的一切。

如何在线解码 JWT?

把令牌粘贴到「解码」标签页:头部、payload 与签名一眼就能分开,随后每段 Base64URL 都会解码成缩进 JSON。标准 claims(iss、sub、exp、iat、nbf、jti)会以表格列出类型与角色,时间戳以 ISO 8601 显示,并附带剩余或已过时长。

如何验证 JWT 的签名?

在「验证」标签页选择令牌声明的算法。HS256、HS384、HS512 请输入共享密钥:工具会在 en-tête.payload 字符串上重新计算 HMAC,并与携带的签名比对。RS256、RS384、RS512、ES256、ES384 与 PS256 请粘贴 SPKI 格式的 PEM 公钥。结果显示「签名有效」或「签名无效」,并给出原因。

可以在这里编码并签署 JWT 吗?

可以。在「编码」标签页编辑 JSON 头部与 JSON payload,选择算法并输入共享密钥:签名后的令牌会立即出现,可直接复制或下载为 jwt.txt。签名支持 HS256、HS384、HS512 与 none,其余算法用于验证。

JWT 是什么?它的三部分各有什么用?

JWT(JSON Web Token)是由点分隔的三段字符串:头部声明算法与类型,payload 携带 claims,签名保证内容未被改动。前两段是用 Base64URL 编码的 JSON——只是编码,并非加密:任何人都能读。只有签名保护完整性。

如何读取 exp、iat 和 nbf 这几个 claim?

exp、iat 和 nbf 是以秒为单位的 Unix 时间戳,不是 ISO 日期。「解码」标签页会自动把它们转换为 ISO 8601 和相对时长(「2 天 03:00:00 后过期」),「过期时间」标签页则支持时间戳与可读日期的双向转换,用来核查看似无效的令牌,或精确设定有效期。

Base64 与 Base64URL 有什么区别?

Base64URL 把加号换成连字符、斜杠换成下划线,并去掉「=」填充。JWT 必须使用它,因为点、加号或斜杠都会破坏三段式切分。这也是某些标准解码器会误判完全有效 payload 的原因。

解码后的 JWT 是密码吗?

不是。JWT 的 payload 只是 Base64URL,无需密钥即可完全读取:永远不要往里放标识符、邮箱、角色或权限。签名不加密内容,只做认证。若要在客户端保存机密,需要另用对称加密——JWT 不是为此设计的。

这个工具会把我的令牌发送到服务器吗?

不会:解码、验证与签名都在浏览器中通过 WebCrypto 完成,没有网络请求,也不需要账户。这一点对生产令牌尤为重要,它们常含会话标识。历史记录保存在设备的本地存储中,一键即可清空。

100 % 本地的 JWT 解码器:令牌永不离开您的电脑

与常见的在线 JWT 解码器不同,这里不传输任何字符串:解码、签名验证与编码全部通过 WebCrypto 在浏览器中完成,既无第三方库也无网络请求。正因如此,即使离线或在公共网络上,也能放心查看真实的会话令牌、预发布密钥或内部服务 token。历史记录与上次输入保存在本地(localStorage),始终留在您的设备上。

许可证 Volade Premium 提供可选的加密云端同步,独立于工具本身——其余功能依然免费、无限制,无需注册。

一份高级许可证,畅用你的所有网页工具

JWT 解码器、URL 编码解码器、Base64 编码解码器、JSON 格式化器、各类生成器、PDF 编辑器和数十种免费工具——一份许可证即可畅享 Volade 全部生态。

一个许可证,整个优质生态 浏览器 · CMS · 桌面 · 移动 · 脚本 · API · 工具 · Database
一个许可证,通用于所有 升级到优质版 登录