JWT 解码
解码 JSON Web Token 的头部和载荷,并把 exp、iat 和 nbf 显示为日期。解码不等于验证:不会检查签名。
在浏览器中本地处理,你的文本不会被上传。
这个工具能做什么
粘贴一个 JSON Web Token,就能看到其中的内容。工具会把它拆分为头部、载荷和签名,将 Base64url 部分按 UTF-8 解码,并以语法高亮的方式美化显示 JSON。注册的时间声明 exp(过期时间)、nbf(生效时间)和 iat(签发时间)会显示为易读的日期,并根据你设备的时钟,明确标示已过期、尚未生效或当前有效。
重要提示:解码不等于验证。JWT 的头部和载荷只是经过编码,并没有加密,任何人都可以创建内容随意的令牌。本工具从不检查签名、签发方、受众或任何其他声明,因此能在这里解码的令牌仍可能是伪造的、被篡改的或已被撤销的。切勿仅仅因为令牌能够解码就信任它。验证必须由你的服务器使用正确的密钥完成。
令牌就是凭证。解码完全在你的浏览器中进行,令牌不会被发送到任何地方,但你仍应避免在不受你控制的设备上粘贴线上正在使用的生产令牌。当令牌声明 alg 为“none”或没有签名时,工具还会发出警告,这是不安全或伪造令牌的典型迹象。
使用方法
- 1粘贴完整的令牌(由点分隔的三部分)。开头的“Bearer ”会被自动去掉。
- 2查看解码后的头部和载荷,以及 exp、nbf 和 iat 对应的日期。
- 3留意任何警告,例如 alg 为“none”或缺少签名。
- 4如有需要,复制解码后的 JSON。请在你自己的后端验证签名,千万不要在这里验证。
支持的格式
采用紧凑序列化的 JWS 令牌(header.payload.signature),头部和载荷为 JSON。加密的令牌(JWE,五个部分)无法解码。
隐私
此工具在你的浏览器中运行。你提供的数据在你的设备上处理,不会发送到我们的服务器。
限制
- 不会验证签名。工具无法告诉你令牌是否真实、在服务器上是否仍然有效、是否已被撤销,或者是否是发给你的应用的。
- 过期和生效状态是根据你设备的时钟计算的,而设备时钟可能不准,服务器通常也允许一定的时钟偏差。
- 加密的 JWT(JWE)有五个部分,载荷无法读取;在这里会被报告为格式错误。
- 时间声明必须是自 1970 年以来的秒数。其他值会显示为无效。
- 其他声明(iss、aud、sub、scope……)只会显示,不会被解释或校验。
常见问题
能解码是否就说明令牌有效?
不是。解码不等于验证。任何人都可以写出载荷内容随意的令牌。只有使用正确的密钥或公钥检查签名,并校验签发方、受众和过期时间等声明,令牌才值得信任。
我的令牌会被发送到服务器吗?
不会。它在你的浏览器中解码,不会被传输。即便如此,也请像对待密码一样对待令牌,尽量使用已过期或测试用的令牌。
alg 为“none”是什么意思?
它表示这是一个未签名的令牌。除非明确预期,否则服务器必须拒绝这类令牌;一旦接受,攻击者就能伪造任意载荷。工具遇到这种情况时会发出警告。
为什么这里显示令牌已过期,服务器却接受它?
你设备的时钟可能与服务器不同,或者服务器允许一定的宽限时间。这里的状态只是基于你本地时间的参考,并不具有权威性。