在线 JWT 检查器,支持解码、验签与签名生成

在浏览器中查看 JSON Web Token 的 Header 和 Payload,使用共享密钥或公钥校验签名,并从可编辑的 JSON 生成新的 Token,全部本地完成。

  • 解析、验签与签名生成都在本地浏览器内完成
  • 以 URL 安全的 Base64URL 方式解码 JWT 的各个片段
  • 支持 HS256、HS384、HS512、RS256、PS256、ES256 和 EdDSA 等常见算法,在有匹配 Key 时可继续验签
  • 编辑 Header 和 Payload JSON 即可即时生成新的 Token

JWT 检查器

解码、校验和重新签名 JSON Web Token,支持查看 Header、Payload、Claims、过期时间和常见签名算法。

JWT 检查器

HMAC 算法使用共享密钥。RSA、PS、ES 和 EdDSA 通常使用 PEM 或 JWK。

什么是 JSON Web Token?

JSON Web Token 是一种紧凑、自己包含的格式,用于在各方之间以 JSON 对象的形式传递声明信息。它定义在 RFC 7519 中,常用于在应用请求之间携带身份或授权相关信息。

标准 JWT 会被签名,接收方可以据此校验完整性和来源真实性。解码后,Payload 仍然是可读的,所以 JWT 不是用来直接存放秘密信息的,除非你使用的是加密方案而不是签名 Token。

JWT 可以使用 HMAC 共享密钥签名,也可以使用 RSA、ECDSA、PS 或 EdDSA 的公钥 / 私钥组合来签名和验证。此页面聚焦的是签名型 JWT,而不是加密型 JWE。

Header

Header 会告诉你这个 Token 的类型和签名算法,通常包含 `typ`、`alg`,有时还会包含 `kid`。

Payload

Payload 存放声明信息,例如 issuer、subject、audience、过期时间以及自定义业务数据。它是 Base64URL 编码,而不是加密。

Signature

Signature 由 Header、Payload 以及密钥、私钥或签名 Key 共同计算得到。它用于发现篡改并确认 Token 的签发者。

标准声明参考

JWT Payload 使用 RFC 7519 定义的注册声明名称。下表列出了解码 Token 时会遇到的常见声明字段及其含义。

声明

iss

说明

发行者(Issuer)。标识签发 JWT 的主体。应用程序用它来确认 Token 来自哪个服务或授权方。

典型值

https://auth.example.com

声明

sub

说明

主题(Subject)。标识 JWT 所针对的主体,通常是用户或实体。在发行者上下文中应是唯一的。

典型值

user_abc123 或 1234567890

声明

aud

说明

受众(Audience)。标识 JWT 预期的接收方。接收方应验证自身的标识是否与 audience 匹配。

典型值

https://api.example.com 或 client-app-id

声明

exp

说明

过期时间(Expiration Time)。一个数值型日期,在此时间之后 JWT 不得被接受处理。应用会拒绝已过期的 Token。

典型值

1710003600(Unix 秒)

声明

nbf

说明

生效时间(Not Before)。标识在此时间之前 JWT 不得被接受处理。Token 在此时间戳之前被视为无效。

典型值

1709996400(Unix 秒)

声明

iat

说明

签发时间(Issued At)。标识 JWT 的签发时间。它有助于判断 Token 的时效,或检测签发时间过久的 Token。

典型值

1709996400(Unix 秒)

声明

jti

说明

JWT ID。JWT 的唯一标识符。可用于防止 Token 被重放,或将 Token 与服务端日志关联。

典型值

unique-token-id-001

声明

auth_time

说明

认证时间(Authentication Time)。记录用户完成认证的时间。在 OpenID Connect 和 SSO 场景中较为常见。

典型值

1709992800(Unix 秒)

什么时候应该使用 JWT?

  • 授权是最常见的场景。用户登录后,后续请求会携带 Token,服务器可以据此放行资源访问,而不必每次都重新校验凭证。
  • 信息交换也是典型用途。签名后的 Token 允许双方共享结构化声明,同时还能验证内容在传输过程中没有被改动。
  • 对于 HMAC 签名的 Token,签名和验签使用同一个共享密钥;对于 RSA、PS、ECDSA 或 EdDSA,私钥负责签名,公钥负责验签。
  • JWT 体积小、适合通过 HTTP 头、表单或请求流程传递,但不能把它当作加密存储来保存私密数据。

功能简介

一个专注的 JWT 工作流,用于检查、验签和生成 Token,全部在浏览器中本地处理。

解码 Token 片段

将 JWT 拆分为 Header、Payload 和 Signature,并把 Base64URL 片段还原为可读 JSON。

校验紧凑型 JWS 签名

使用正确的 Key 类型校验 HMAC、RSA、PS、ECDSA 和 EdDSA 签名,确认 Token 是否被篡改。

生成签名 Token

编辑 Header 和 Payload JSON,选择算法并输入匹配的 Key,即可生成新的签名 Token。

查看声明时间

将 `exp`、`iat` 和 `nbf` 显示为可读时间,便于排查鉴权问题。

复制和复用

一键复制当前 Token,或者加载示例快速体验完整流程。

数据本地处理

所有解析、验签和签名都在浏览器本地完成,不会把密钥或内容发送到服务器。

如何使用

检查模式用于已有 Token,签名模式用于从 JSON 生成新的 JWT。

  1. 1

    在检查模式中粘贴现有 JWT,Token 会先直接解码;如果你想验签,再输入匹配的 Key。

  2. 2

    在右侧查看解码后的 Header、Payload、Signature 和声明摘要。

  3. 3

    切换到签名模式后,编辑 Header 和 Payload JSON 以生成新的 Token。

  4. 4

    选择算法并输入匹配的共享密钥、公钥、私钥或 JWK,Token 会自动重新生成。

  5. 5

    复制生成结果并用于接口调试、鉴权流程或测试数据。

何时使用每种模式

JWT 检查是调试流程,不是安全边界。不同任务对应不同模式。

  • 当你拿到一个 Token 并需要查看声明、过期时间或签名状态时,使用检查模式。
  • 当你需要为测试、演示或本地集成生成新的 JWT 时,使用签名模式。
  • 只有在 Token 使用共享密钥时,HS256、HS384、HS512 才适用;RSA、PS、ECDSA 和 EdDSA 则需要对应的 PEM 或 JWK Key。仅做解码时,不需要提供 Key。
  • 解码后的 Payload 仍然是可读数据。JWT 是签名,不是加密,除非你在处理 JWE。

常见使用场景

只要涉及身份认证、授权或基于声明的路由,JWT 检查都很有用。

登录调试

检查登录 Token 的 subject、roles、scopes、过期时间和签名状态。

后端集成测试

为本地测试、API Mock 和手工 QA 生成可预测的签名 Token。

Token 审核

确认 Token 是否使用了预期算法,以及声明是否符合当前环境。

声明检查

快速查看过期相关字段,提前发现过期 Token 或时钟偏差问题。

实用建议

遵循这些规则,可以避免 JWT 调试和测试 Token 生成时的常见错误。

解码后的 Header 或 Payload 如果不方便阅读,可以先放到 JSON 格式化 里校验 JSON 结构,再复制回签名模式。需要单独查看某一段 Base64URL 内容时, Base64 编码 & 解码 适合做编码和解码实验;如果处理的是非 JWT 的接口签名、Webhook 验签或独立 HMAC 摘要,可以使用 HMAC 生成 。本地生成 HS256 测试 Token 时,如果只需要一次性的共享密钥,建议用 密码生成 生成,不要复用真实凭证。

  • 在使用正确的密钥或公钥完成验签之前,不要信任 JWT 内容。
  • JWT 是签名,不是加密。不要因为它被编码,就误以为 Payload 是私密的。
  • 签名密钥和私钥应保持本地安全,不要把生产密钥贴到共享环境或截图中。
  • 算法必须和 Key 类型匹配。HS256 签发的 Token 不能用 HS512 去验,RSA Key 也不能验证 HMAC Token。
  • 调试时间敏感的鉴权问题时,要重点检查 `exp`、`iat` 和 `nbf`。

限制与注意事项

了解边界,可以避免对 JWT 安全性和兼容性产生错误判断。

  • 此页面支持紧凑型 JWT / JWS 的多种常见签名算法,底层通过 jose 处理。
  • 加密 JWT,也就是 JWE,不在此工具的处理范围内。
  • Header 或 Payload 中的 JSON 如果格式错误,将无法生成签名 Token。
  • Payload 非常大时会影响编辑体验,但所有处理仍然只在本地完成。
  • 此工具适合检查、验签和测试 Token 生成,不适合做密钥管理。

常见问题

围绕使用方式、数据处理、结果判断和常见边界,整理使用前最容易遇到的问题。

01

JWT 是加密的吗?

通常不是。标准 JWT 主要是签名,方便接收方验证完整性,但 Payload 在解码后仍然可读。如果你需要加密,应该使用 JWE。

02

为什么验签会失败?

最常见的原因是密钥不对、算法不一致、Key 类型不匹配、Payload 被修改,或者 Token 本来就是用另一类 Key 签发的。

03

这个页面支持哪些算法?

目前支持 HS256、HS384、HS512、RS256、RS384、RS512、PS256、PS384、PS512、ES256、ES384、ES512 和 EdDSA。

04

我可以用它处理生产密钥吗?

不建议。此页面适合检查、调试和本地测试 Token,不适合在共享浏览器环境中处理生产密钥或私钥。

05

我的 Token 会被上传吗?

不会。解析、验签和签名都在浏览器本地完成,不会上传到服务器。

06

为什么 `exp` 和 `iat` 显示为时间?

JWT 的时间声明通常保存为 Unix 秒时间戳。页面会把它们转换为可读时间,方便调试。

更多安全、加密与身份验证工具

DevKitLab 提供 JWT 检查器、密码生成器、哈希生成、HMAC 生成等在线工具,适合令牌检查、密码创建、数据摘要、签名校验和常见安全调试场景。