dev

用 Base64 解码 JWT Payload:安全查看 Token 内容

学习如何用 Base64 解码 JWT Payload,在浏览器中查看 header、payload 和常见 claims,理解 token 分段含义,区分编码、解码和签名验证,帮助排查过期时间、受众、签发方和权限范围等常见问题,同时避免把可读内容误认为已完成安全校验或服务端可信验证。

什么时候使用这个流程

当你拿到一个 JWT,需要检查 API 请求、浏览器会话或 Authorization header 中的 payload 内容时,可以使用这个流程。完整 token 优先放进 JWT Decoder,让工具拆出 header、payload 和 signature。只有当你想理解中间 payload 分段如何从编码文本变成 JSON 时,再配合 Base64 Encoder 查看。

JWT payload 可能包含 subject、issuer、audience、过期时间、用户 ID、租户 ID 或应用自定义字段。解码能帮助你检查这些值,但不能证明 token 本身可信。

操作步骤示例

  • 从安全的调试来源复制 JWT,例如本地测试请求、临时开发 token 或可公开检查的示例值。
  • 打开 JWT Decoder,粘贴完整 token,先确认 header、payload 和 signature 是否能正常分段。
  • 查看 payload 里的 claims,重点检查 `exp`、`iss`、`aud`、用户标识、角色和权限范围等字段。
  • 如果你只有 JWT 中间那一段 payload,可以把它当作 Base64URL 文本解码,再检查解出的 JSON 是否符合预期。
  • 如果需要理解签名思路,可以用 HMAC Generator 学习对称签名概念,或用 RSA Encrypt 理解公钥/私钥工作流,但不要把这些操作等同于验证 JWT。
  • 调试接近生产的数据时,先遮盖用户标识、邮箱、租户 ID、权限范围和其他敏感字段,再分享截图或日志。

常见错误

不要以为能解码就说明 JWT 有效。任何人都可以解码 payload,也可以伪造一个看起来像 JWT 的字符串。是否可信取决于签名验证、issuer 检查、audience 检查、过期时间检查和服务端校验规则。

不要手动修改 payload 后继续使用原 token。payload 一旦改变,原来的签名关系就不再成立。除非由可信服务重新签名,否则修改后的 token 应视为无效。

不要把长期 access token、refresh token、客户隐私数据、生产密钥或内部权限信息粘贴到不可信环境中。浏览器工具也只能用于你确认可以检查的数据。

相关工具

JWT Decoder 适合查看 JWT header 和 payload 字段,是调试 token 内容时的首选入口。

Base64 Encoder 适合理解编码文本如何还原成 JSON,尤其是你只拿到 JWT payload 分段时。

HMAC Generator 适合学习对称签名概念,帮助理解部分 token 和 webhook 系统的签名设计。

RSA Encrypt 适合理解公钥和私钥相关的工作流,便于区分非对称签名设计与普通编码。

隐私说明

JWT 经常包含用户标识、角色、scope、邮箱、租户 ID 或会话元数据。即使 payload 没有加密,也可能属于敏感信息。只解码你有权限检查的数据,不要把真实 token 保存到工单、聊天记录、截图或公开示例中。

FAQ

JWT payload 是加密的吗?

通常不是。标准 JWT payload 是 Base64URL 编码,不是加密;解码后可以读取其中的 JSON 内容。

解码 JWT 会验证签名吗?

不会。解码只让 header 和 payload 变得可读。签名验证需要正确的密钥或公钥,以及接收系统使用的验证规则。

解码后可以修改 JWT payload 吗?

可以在本地修改文本,但不能信任修改后的 token。payload 改变后,原始签名关系就失效了。

应该用 Base64 Decoder 还是 JWT Decoder?

如果你有完整 token,优先使用 JWT Decoder。如果你只想查看某一个编码分段,或学习 payload 文本如何表示,再使用 Base64 Encoder。

继续阅读工具教程