JWT 解码器
新解码 JSON Web Token,查看声明,并在本地验证 HS256 签名。
A JWT is a credential. This decoder, verifier and encoder run 100% in your browser — your token and secret are never uploaded, logged, or sent to any server. Even so, never paste a real production token into a site you don't fully trust.
The signature is a keyed hash of the header and payload. It proves the token wasn't altered — verify it below.
| Claim | Value |
|---|
This payload has no standard claims (iss, sub, exp…). All of its data is shown in the Payload panel above.
Runs entirely in your browser. Nothing is uploaded.
在浏览器中解码任何 JSON Web Token
这款 JWT 解码器可将不透明的 eyJ… 字符串即时转换为可读的 JSON。粘贴一个 JSON Web Token,它将在点号处将其分割,对头部和载荷进行 Base64URL 解码,并将两者并排格式化展示,同时单独显示原始签名。这是调试身份验证流程、检查 API 响应中的令牌,或确认您的后端究竟签发哪些声明的最快方法。
令牌的每个部分都有颜色编码 — 头部、载荷和签名 — 使 header.payload.signature 的三个部分一眼即可辨别。无需账户、无需服务器上传、无每日解码限制。
一览声明并检查过期时间
解码器会在清晰的表格中突出显示 RFC 7519 中定义的标准注册声明 — iss、sub、aud、exp、nbf、iat 和 jti — 并为每个声明提供通俗易懂的含义说明。三个时间声明是 Unix 纪元秒数,容易被误读,因此该工具会将其转换为您的本地日期和时间,并添加类似"5 分钟前签发"或"59 分钟后过期"的相对提示。
最重要的是,它回答了您通常打开 JWT 调试器要问的问题:这个令牌还有效吗?系统会将 exp 声明与当前时间比较,自动将令牌标记为有效或已过期,同时也尊重 nbf,让您立即看出过期令牌是否是请求被拒绝的原因。
验证签名 — HS256、RS256 和 ES256
解码显示令牌声称的内容;验证则证明您可以信任它。该工具还是一款 JWT 签名验证器:它从头部读取算法,并使用浏览器的 Web Crypto API 在本地验证签名。对于 HS256、HS384 和 HS512,您需要提供共享的 HMAC 密钥;对于 RS256、PS256 和 ES256(及其 384/512 变体),您需要粘贴 PEM 格式的签发者公钥。
由于计算在您的设备上运行,您无需将令牌、密钥或公钥发送至任何服务器,即可确认令牌的真实性 — 没有人篡改过载荷。绿色对钩表示签名匹配;红色叉号表示令牌已被修改或您使用了错误的密钥。
同样可以构建和编码 JWT
需要反向操作?内置的 JWT 编码器让您从头创建令牌。以 JSON 形式编辑头部和载荷,选择 HMAC 算法,输入密钥,它会生成一个正确签名的 header.payload.signature 令牌,可直接复制到请求或测试中。便捷的快捷按钮可添加最新的 iat 和 exp 声明,使您的测试令牌具有逼真的时间戳。
这使 UtiloKit 成为集 JWT 解码器和编码器于一体的工具 — 检查来自 API 的令牌并创建新令牌发送,所有操作在同一页面完成,无需服务器参与,无需账户。
与 jwt.io、token.dev 和 jwtdecode.com 的比较
jwt.io 是网络上最知名的 JWT 工具 — 由 Auth0 构建,在文档中被广泛引用,受到数百万开发者的信赖。其主要局限在于隐私:jwt.io 在某些配置下会将您的令牌发送到 Auth0 的服务器。
token.dev 和 jwtdecode.com 涵盖了基本解码功能,但不支持使用 PEM 密钥进行 RS256/ES256 签名验证 — 而这正是 Auth0、Google、Microsoft Azure AD、Okta 以及大多数企业 OIDC 提供商使用的算法。
UtiloKit 解码器在浏览器中处理所有这些:解码、过期检查,以及对 HS/RS/PS/ES 算法族的完整签名验证 — 免费、无需账户、无每日限制,且任何内容都不会离开您的设备。
JWT 安全性:令牌能保护什么,不能保护什么
JWT 是为完整性而签名的,而非为保密性而加密的。持有令牌的任何人都可以读取载荷中的每个声明 — Base64URL 编码是微不足道可逆的,正如本解码器所演示的。因此,载荷应只包含非敏感标识符:用户 ID、角色或电子邮件。切勿将密码、支付信息或 API 密钥放入 JWT 载荷。
签名可防止篡改:如果攻击者修改了载荷中的哪怕一个字符,签名将不再匹配,任何使用正确密钥进行验证的服务器都会拒绝该令牌。经典的 alg: none 攻击通过声称不使用任何算法来绕过此保护 — 这是一个众所周知的漏洞(CVE-2015-9235),任何生产环境的 JWT 库都应予以阻止。
使用 exp 保持短令牌生命周期,通过 HTTPS 传输,存储在内存或 httpOnly Cookie(而非 localStorage)中,并在每次请求时验证签名。在部署到生产环境之前,使用此免费工具解码和检查您的令牌,确认这些属性设置正确。
Frequently asked questions
什么是 JWT(JSON Web Token)?
JWT 是在两方之间携带签名信息的一种紧凑、URL 安全的方式 — 通常是登录令牌。它由用点号连接的三个 Base64URL 部分组成:header.payload.signature。头部命名签名算法,载荷保存声明(数据),签名让接收方确认令牌未被篡改。OAuth 2.0、OpenID Connect、Auth0、Firebase、Supabase、AWS Cognito 以及大多数现代身份验证系统都使用 JWT。
如何解码 JWT?
在两个点号处分割令牌,对前两部分进行 Base64URL 解码。解码后头部和载荷是纯 JSON;第三部分(签名)保持二进制形式。本工具可即时完成 — 粘贴令牌,解码后的头部和载荷即以格式化形式显示。无需将任何内容发送到任何地方;解码在您的浏览器中运行。解码 JWT 不需要密钥或私钥。
在线解码 JWT 安全吗?
使用本工具,是的 — 每个字节都在您的浏览器中使用 JavaScript 本地解码,您的令牌永远不会触及服务器、日志或网络请求。所有处理都在客户端完成,没有后端,也没有对令牌内容的分析跟踪。话虽如此,JWT 仍然是一种凭据:不要将实时生产令牌粘贴到任何您不信任的网站。
JWT 里面有什么?
三个部分。头部是描述类型和签名算法的 JSON,例如 {"alg":"HS256","typ":"JWT"}。载荷是保存声明的 JSON — 包括注册声明(sub、exp、iat…)和任何自定义数据,如角色或用户 ID。签名是头部和载荷的密钥哈希值,证明它们未被更改。只有签名需要密钥;头部和载荷只是 Base64URL 编码,并非加密。
如何检查 JWT 是否过期?
读取 exp 声明 — 一个以秒为单位的 Unix 时间戳。如果 exp 早于当前时间,令牌已过期,应被拒绝。本解码器将 exp 转换为可读日期,显示类似"3 小时前过期"或"59 分钟后过期"的相对时间,并自动将令牌标记为有效或已过期。
如何验证 JWT 签名?
解码头部以读取 alg,然后重新计算 header.payload 上的签名并进行比较。对于 HS256/384/512,您需要共享密钥;对于 RS256、PS256 或 ES256,您需要 PEM 格式的签发者公钥。本工具使用 Web Crypto API 在本地验证所有这些 — 选择匹配的算法,粘贴密钥或公钥,它会报告签名是否真实。
没有密钥可以解码 JWT 吗?
可以。解码只读取 Base64URL 编码的头部和载荷,根本不需要任何密钥 — 这就是为什么您永远不应该在 JWT 载荷中放置密钥。密钥或公钥只有在验证签名时才需要,即证明令牌是真实且未被篡改的。解码告诉您令牌声称什么;验证告诉您是否应该相信它。
Related tools
查看全部工具信用卡号校验器
用 Luhn 算法校验卡号并识别其卡组织品牌。
口令短语生成器
用安全随机生成器创建便于记忆的单词式口令短语。
哈希生成器
在本地计算 MD5、SHA-1 与 SHA-256 哈希值。
密码强度检测器
通过熵值、破解耗时估算与建议来检测密码强度。
文本加密 / 解密
用口令对消息进行 AES-256 加密与解密,全程在浏览器中完成。
Tax Bracket Calculator
See your 2024 US federal income tax bracket, effective rate and marginal rate — for any filing status.