ToolConvoyToolConvoyv2.6
DEV

JWT 解码器 — 在浏览器中解码 JWT 令牌以查看 Header 和 Payload

解码 JWT 令牌以查看 Header 和 Payload 中的声明。仅做 Base64 解码、不进行签名校验——完全在浏览器中运行,令牌不会离开你的设备。

● 本地运行 · 在您的标签页中生成页面加载以来工具发出的网络请求:0 次

JWT Decoder

Decode JWT tokens to view header and payload. Works entirely in your browser — your tokens never leave your device.

JSON Web Token(JWT)是 Web 上最常见的身份认证格式。每一个 OAuth2 流程、每一个 OpenID Connect 会话、每一个现代应用里的 API 令牌都是一个 JWT——三段由点号连接的 Base64URL 编码段,分别承载 Header、声明组成的 Payload 和一个加密签名。Header 和 Payload 并非加密,而是 base64 编码,这意味着任何拿到令牌的人都能解码它们。安全保证不在于 Payload 的保密性,而在于签名——它证明 Payload 由可信机构签发且未被篡改。JWT 解码器让你读取 Header 和 Payload 中的声明,这是调试任何认证流程的第一步。

每个 JWT 解码器都应给出一条安全警告:解码不是校验。解码器只读取 Payload 中的声明——谁签发了令牌、何时过期、携带哪些权限——但不检查签名。一个能正常解码的令牌,若签名无效,仍可能是伪造的。除非已用正确的密钥或公钥校验了签名,否则不要把解码后的 JWT 当作身份认证或授权的证明。本解码器在浏览器中运行,绝不会把令牌发到服务器,所以解码出的声明只有你能看到——但它们依然不证明任何东西。

解码 JWT 最常见的原因是检查它是否已过期。exp 声明是一个 Unix 时间戳;解码器会以人类可读的形式展示过期日期,并高亮令牌是否已经过期。第二个常见原因是查看自定义声明——令牌签发方嵌入在 Payload 里的应用特定数据,例如用户 ID、角色、租户标识或权限集合。解码后的 Payload 是「令牌声称代表什么」的真相来源;这些声明是否真实有效,则交给校验器来回答。

广告

使用方法

  1. 粘贴你的 JWT

    把 JWT 字符串(三段由点号分隔的 Base64URL 编码段)放入输入区。解码器会按点号分隔符拆分令牌,并解码 Header 和 Payload。

  2. 查看声明

    Header 和 Payload 解码后为 JSON。常用声明(`iss`、`sub`、`aud`、`exp`、`iat`、`nbf`、`jti`)会高亮并显示其在 RFC 7519 中的定义。`exp` 声明会以本地时区显示人类可读的过期时间。

  3. 复制解码后的 JSON

    把 Header 或 Payload 的 JSON 复制到剪贴板。可用于调试令牌内容、查看自定义声明,或在发起 API 调用前检查过期时间。

常见问题

为什么这个工具不校验签名?

签名校验需要签署该令牌的密钥或公钥。本解码器只读取 Header 和 Payload——它们是 base64 编码的、并未加密——并展示其内容。永远不要在未校验签名的情况下信任解码后的 JWT,校验签名需要密钥以及后端服务。

我的 JWT 会被发送到服务器吗?

不会。解码完全在你的浏览器中完成,不发起任何网络请求。令牌始终留在你的设备上。这是客户端 JWT 解码器与那些把你的令牌发到他们服务器上进行解码的网站的根本区别。

`exp` 声明是什么意思?

`exp`(expiration time,过期时间)声明是一个 Unix 时间戳(自 1970-01-01T00:00:00Z 起经过的秒数)。超过该时间后,校验服务器应拒绝该令牌。解码器会以你的本地时区显示过期时间,让你一眼就能判断令牌是否已过期。

能处理加密的 JWT(JWE)吗?

不能。JWE 是加密的,没有解密密钥就无法解读。解码器只能处理已签名但未加密的 JWT(JWS)。加密的 JWT 由五段 Base64URL 段组成(而非三段)—— 解码器会提示无法解析该格式。

JWT 的标准声明有哪些?

RFC 7519 定义了七个注册声明:`iss`(issuer,签发者——谁创建了该令牌)、`sub`(subject,主体——令牌所描述的对象)、`aud`(audience,受众——令牌的接收方)、`exp`(expiration,过期时间)、`nbf`(not before,生效时间)、`iat`(issued at,签发时间)、`jti`(JWT ID——用于防重放的唯一标识)。解码器会以这些 RFC 定义高亮它们。

限制说明

  • 不做签名校验本工具是解码器,不是校验器。已解码的 JWT 不等于可信的 JWT——若签名未经校验,Payload 中的声明可能在传输途中被篡改。在基于这些声明进行身份认证或授权前,请始终在受信后端用正确的密钥校验签名。
  • 不自动发现密钥解码器不会拉取 JWKS 端点,也不会从 OIDC 元数据中发现公钥。它只读取令牌本身——密钥管理是另外的事。
  • 不支持 JWE加密的 JWT 使用不同的格式(JWE),包含五段。把 JWE 粘贴进解码器会被拒绝解析。请用后端解密库处理加密令牌。

平台说明

macOS
在 macOS 上可用 `pbpaste` 把剪贴板内容粘进输入框,或用浏览器工具做解码。纯 CLI 场景下,`echo $TOKEN | cut -d. -f2 | base64 -d | jq` 可解码 Payload。
Windows
浏览器工具无需安装即可解码 JWT。纯 CLI 场景下,PowerShell 的 `[System.Convert]::FromBase64String()` 配合 `ConvertFrom-Json` 可解码 Payload。
Linux
纯 CLI 场景下,`echo $TOKEN | cut -d. -f2 | base64 -d 2>/dev/null | jq .` 可解码 Payload。当你不希望把令牌留在 shell 历史记录中时,浏览器工具是更合适的选择。
Web
完全在客户端运行,无网络请求,令牌始终留在你的设备上。当你在邮件、聊天或工单中收到 JWT 需要安全查看时,本工具就是为此而生的。
广告
广告