工作原理
JSON Web Token (JWT) 是一个开放标准 (RFC 7519),它定义了一种紧凑且自包含的方式,用于在各方之间作为 JSON 对象安全地传输信息。 JWT 由三部分组成,通过点号 (.) 分隔:
- Header(头部):通常由两部分组成:令牌的类型(即 JWT)和所使用的签名算法,例如 HMAC SHA256 或 RSA。
- Payload(负载):包含声明(Claims)。声明是关于实体(通常是用户)和其他数据的声明。
- Signature(签名):用于验证消息在传输过程中未被更改,并且对于使用私钥签名的令牌,还可以验证发送者的身份。
注意:本工具仅对 Header 和 Payload 进行 Base64Url 解码,不涉及签名验证(因为这需要您的私钥或密钥,为了安全请勿在任何在线工具中输入密钥)。整个过程完全在您的浏览器本地完成。
使用场景
-
开发调试: 前端开发人员可以快速查看后端返回的 Token 中包含哪些用户信息(如 `user_id`, `role`),排查权限问题。
-
检查过期时间: Token 突然失效了?把它粘贴进来,看看 `exp` 字段显示的时间是否已经过期。
常见问题 (FAQ)
什么是 JWT?
JWT 全称 JSON Web Token,是一种用于在网络应用环境间传递声明而执行的一种基于 JSON 的开放标准。它常用于身份验证和信息交换。
在这里输入 Token 安全吗?
是的,绝对安全。本工具的所有解码逻辑都由 JavaScript 在您的浏览器中直接运行,您的 Token 数据永远不会发送到我们的服务器。您可以断网使用以验证这一点。
我可以验证签名吗?
不可以。为了保护您的安全,我们不支持在线验证签名,因为这需要您提供密钥(Secret)。我们强烈建议不要在任何第三方网站上输入您的私钥或密钥。
字段 `exp` 是什么意思?
`exp` (Expiration Time) 表示 Token 的过期时间戳。如果当前时间超过了这个时间,Token 通常会被服务器视为无效。
字段 `iat` 是什么意思?
`iat` (Issued At) 表示 Token 的签发时间。它记录了 Token 是在什么时候被创建的。
为什么解析出来是乱码?
可能有两个原因:1. 您输入的字符串不是有效的 JWT 格式。2. 这是一个 JWE (Encrypted JWT),即内容被加密了,不仅仅是 Base64
编码,这种情况下没有私钥是无法查看内容的。
可以修改 JWT 的内容吗?
您可以修改 Payload 的内容并重新编码,但随后的签名部分将不再匹配。服务器在验证签名时会发现 Token 被篡改,从而拒绝请求。
Base64 和 Base64Url 有什么区别?
JWT 使用 Base64Url 编码,它是 Base64 的变体,URL 安全。它将 Base64 中的 `+` 替换为 `-`,`/` 替换为 `_`,并去除了所有的 `=` 填充符。