功能
解码
JSON Web TokenJSON Web TokenA compact, URL-safe token that carries claims (like identity or expiry) between two parties, signed to prevent tampering.Learn more
并展示其内容 — 全部在本地浏览器中完成。粘贴一个 JWT,头部和负载便会以格式化 JSON 的形式在并排面板中展开,上方带有alg 和 typ 标签。标签下方最多显示三条安全提示:alg none — 未签名令牌(红色,针对 alg: none)、对称 — 需在服务端验证(信息,针对 HS256/HS384/HS512)以及缺少 exp 声明(强调色,负载不含过期时间时显示)。时间声明(exp、iat、nbf)以人性化方式呈现 — exp 在 43 天后、iat 2 小时前 — 负载面板带有一个由 exp 驱动的有效或已过期徽章。
本工具只做解码 — 永不验证签名。验证签名需要密钥或公钥,而它们存放在服务端。你在这里读到的每一条声明都是发送方的陈述,不是经过验证的事实。
使用方法
- 点选一个示例标签 — HS256、Expired、alg: none — 或将自己的令牌粘贴到
JWTJWTA compact, URL-safe token that carries claims (like identity or expiry) between two parties, signed to prevent tampering.Learn more
输入框。令牌由三个以点分隔的部分组成;少于两个部分会显示错误框。 - 阅读面板:左侧 Header(算法元数据),右侧 Payload(声明)。两者都可复制为 JSON。
- 浏览提示标签:未签名令牌、对称算法、缺少过期时间一目了然。
- 查看 Payload 旁边的徽章:
exp在未来时为valid,过期后为expired。 - 复制将令牌包含在 URL 中的分享链接,或阅读面板下方显示的原始签名。
示例
HS256 标签填入令牌 eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkFkYSBMb3ZlbGFjZSIsImlhdCI6MTcwMDAwMDAwMH0.sig(虚拟签名)。解码为:
| 部分 | 解码结果 |
|---|---|
| Header | { "alg": "HS256", "typ": "JWT" } |
| Payload | { "sub": "1234567890", "name": "Ada Lovelace", "iat": 1700000000 } |
其负载没有 exp,因此提示为对称 — 需在服务端验证和缺少 exp 声明。
Expired 标签带有 exp: 1700000000(2023-11-14T22:13:20Z)以及早一秒的 iat — 两者均已过去 — 因此负载徽章显示 expired,人性化标签显示 exp 1015 天前(数字随时间增长;徽章不会变回)。
alg: none 标签是 eyJhbGciOiJub25lIn0.eyJzdWIiOiIxIn0. — 头部 { "alg": "none" },负载 { "sub": "1" },末尾点后为空签名。它与其他令牌一样解码,并显示红色提示 alg none — 未签名令牌加缺少 exp 声明;签名行显示 (none)。
诸如 eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxIn0 的两部分令牌(头部和负载,无第三段)仍可解码 — 缺失的签名显示为 (none)。少于两个点分隔部分的输入(如 abc)会显示错误框:A JWT has 3 dot-separated parts: header.payload.signature。
补充说明
JWTJWTA compact, URL-safe token that carries claims (like identity or expiry) between two parties, signed to prevent tampering.Learn more
是由点连接的三个 base64url 部分:header.payload.signature。base64url 将+→-、/→_替换并去除=填充,使令牌可以放入 URL 或 HTTP 头部 — 这正是JWTJWTA compact, URL-safe token that carries claims (like identity or expiry) between two parties, signed to prevent tampering.Learn more
永远不含+、/、=的原因。- 签名基于
base64url(header) + "." + base64url(payload)用头部声明的算法计算 — 使用共享密钥的HMACHMACA construction that combines a hash function with a secret key to prove a message is intact and came from someone holding the key.
(HS256)或私钥(RS256)。改动任一编码部分的一个字节,签名便不再匹配。任何人都能随意编写头部和负载;签名是唯一没有密钥就无法伪造的部分。这正是本工具只解码、不验证的原因。 - 时间声明为 Unix 秒数:
iat= 签发时间,nbf= 生效时间,exp= 过期时间。缺失的第三段显示为(none);两部分令牌仍可解码。 - 隐私: 解码在浏览器中本地运行。
JWTJWTA compact, URL-safe token that carries claims (like identity or expiry) between two parties, signed to prevent tampering.Learn more
往往是有效的凭证 — 本工具绝不会传输它。(分享链接确实携带令牌;只分享你控制的令牌。) - 相关工具:
HMACHMACA construction that combines a hash function with a secret key to prove a message is intact and came from someone holding the key.
生成器、JSON 格式化器、Base64Base64An encoding representing binary data as 64 safe ASCII characters, so it survives transport through text-only channels. It encodes — it does not encrypt.
编码 / 解码。