JWT 解码
正在加载计算模块…
关于这个计算器
调试接口时手上只有一个 JWT,想看它到底带了什么声明(exp 过期没、sub 是谁、scope 有哪些)可输入:JWT Token、顺带检查过期时间(仅本地比较系统时间)。全部在浏览器内计算,数据不上传。
依据文件
常见问题
查看全部 222 个问题 →JWT 解码后能判断 token 有效吗?
不能。本工具只做 Base64URL 解码,把 header 与 payload 的 JSON 显示出来,**不验证签名**。一个被篡改过 payload 的 token 同样能解码成功。判断有效性必须由服务端用密钥验签 —— 前端永远不应自行判定 token 有效。
JWT 的 exp、iat 是秒还是毫秒?
都是秒(Unix 时间戳),这是 RFC 7519 的规定。前端常犯的错误是把 `Date.now()` 的毫秒值直接与 exp 比较,导致 token 永远「已过期」或「永不过期」。正确写法:`Date.now() / 1000 > exp`。
为什么 JWT 不应该存敏感信息?
因为 payload 只是 Base64URL 编码,不是加密 —— 任何人拿到 token 都能解出全部内容。JWT 只保证「不可篡改」(靠签名),不保证「不可读」。手机号、身份证号、权限细节等都不应放进 payload。
同专题的其他工具
- JSON 格式化 / 校验 在线格式化、压缩、校验 JSON。语法错误会精确指出第几行第几列
- 时间戳转换器 时间戳与日期双向转换
- URL 编码解码 URL 中文参数编解码
- Base64 编解码 文本与 Base64 互转。已处理中文的 UTF-8 编码问题(浏览器原生 btoa 直接处理中文会抛错)
- Unicode 转义还原 把 \u4e2d\u6587 这种转义序列还原成中文
- Cron 表达式解释 运维天天在写 `0 9 * * 1-5`
- 文本差异对比 改配置、对文案、核接口返回时
- MD5 哈希生成 WebCrypto(crypto.subtle.digest)根本不支持 MD5 ——它只提供 SHA-1/SHA-2 系列可输入:输入文本、输出大写(32 位 → 32 位大写)。全部在浏览器内计算
- HTTP 状态码查询 接口返回 502 / 504 / 499 时
- 正则表达式测试 写正则时最容易踩的两个坑 ——1) 语法错误的正则直接 new RegExp 会抛异常
- URL 结构解析 排查「接口 404」「跳转丢了参数」「中文参数乱码」时
计算结果仅供参考,不构成专业意见。所有计算在浏览器内完成,输入数据不上传服务器。