反馈途径·目前大家有任务反馈可以直接发我邮箱:lyfs814@163.com陆续上线高价值工具,敬请期待! 欢迎使用蜗牛工具箱·新工具持续上线中,欢迎收藏关注。如有建议欢迎反馈! 反馈途径·目前大家有任务反馈可以直接发我邮箱:lyfs814@163.com陆续上线高价值工具,敬请期待! 欢迎使用蜗牛工具箱·新工具持续上线中,欢迎收藏关注。如有建议欢迎反馈!
v1.0 · 已上线中英双语纯客户端

JWT 编解码JWT Sign / Decode

在线签发与解析 JSON Web Token:HS256 / HS384 / HS512 一键签名,token 三段结构自动拆解,exp 过期状态一目了然。基于 Web Crypto API,密钥与 token 全程不上传。

本周使用—·收藏1,032·版本v1.0.0·最后更新3 天前·完全免费
模式
·算法
··字符102
输入Payload · 7 行
输出JWT · Base64URL 三段式
// 签发的 JWT token 会显示在这里…
·
执行

工具介绍

3 段详细说明

JWT 签发与解析是调试登录态的一站式工具:签发(生成 token)与解析(拆解三段)双模式一键切换。签发支持 HS256 / HS384 / HS512 对称算法,粘贴 Payload 即得 token;解析把 token 拆成 Header、Payload、Signature 三段展示,exp 过期状态一目了然。

所有运算都基于浏览器原生 Web Crypto API,在浏览器内存中完成,密钥与 token 不上传任何服务器。零依赖、零打包,签发与解析均在毫秒级完成。

相比 jwt.io 等在线工具,本工具无第三方 CDN、无追踪、无登录。点「交换」把签发结果送回输入框反向验证,签发 → 解码 → 改字段重签,一次调试闭环搞定。

基础知识 · JWT 三段结构

RFC 7519

JWT(JSON Web Token)是跨服务的无状态登录凭证。按 RFC 7519 定义,它由三段 Base64URL 字符串用英文句点连接而成:header.payload.signature,签名保证前两段内容未被篡改。

1three parts三段式结构
一个 JWT 是用 . 分隔的三段字符串:header.payload.signature。前两段是 Base64URL 编码的 JSON,第三段是签名。任何一段缺失或为空都不是合法 JWT。
2headerHeader · 头部
声明签名算法与类型,最常见的是 {"alg":"HS256","typ":"JWT"}。alg 决定签名方式(HS = HMAC 对称,RS/ES = 非对称),验证方必须校验它是否符合预期,防止 alg=none 替换攻击。
3payloadPayload · 载荷(Claims)
存放实际数据。RFC 7519 预定义了 7 个保留字段:iss(签发方)、sub(主体)、aud(受众)、exp(过期,秒级时间戳)、nbf、iat、jti。其余字段自定义,如 name、role。
4signatureSignature · 签名
对 header.payload 前两段用密钥签名,保证内容未被篡改。任何一方改动 payload,验证方重算签名立刻对不上。签发用私钥,验证用公钥(非对称)或同一密钥(对称)。
5base64urlBase64URL 编码
JWT 用的是 Base64 的 URL-safe 变种:+ → -,/ → _,并去掉 = 填充。所以 JWT 可以直接放进 URL、Cookie、Header 而无需再转义。
6signed ≠ encrypted签名 ≠ 加密
Payload 只是Base64 编码,任何人拿到 token 都能瞬间读出全部内容。JWT 解决的是防篡改,不是保密。绝对不要把密码、身份证号等敏感信息明文放进 Payload。
实战速记
HS256 还是 RS256? 单服务签发+验证用 HS256(共享密钥、实现简单、性能高);多服务分布式(鉴权服务签发、业务服务只验证)用 RS256(私钥签发、公钥验证),更安全但开销大 100 倍以上。
exp / iat / nbf 都是秒级 Unix 时间戳(不是毫秒),填错单位会导致 token 一签发就「已过期」或「尚未生效」。
exp 过期后无法续期,只能重新签发。长会话场景用 短 exp 的 access token + 长效 refresh token 组合。

使用说明

4 步快速入门
1
选模式
「签发」从 Payload 生成 token;「解码」把现有 token 拆成三段查看
2
填内容
签发模式:左侧贴 Payload JSON、选算法、填密钥;解码模式:左侧贴完整 token
3
点执行
点击「执行」或按 ⌘+↵,右侧立即显示结果,错误时给出红字提示与修复建议
4
复制 / 交换
点「复制」带走结果;点「交换」把输出送回输入框,签发 ↔ 解码往返验证

使用场景

5 个真实案例
01调试登录态

把线上 token 粘进解码模式,直接看用户 ID、角色、过期时间,定位「莫名掉线」比 grep 日志快 10 倍。

02本地联调造 token

后端接口没就绪时,签发模式手工构造带 role / exp 的 token,前端联调权限逻辑不等接口。

03验证 exp 过期逻辑

故意把 exp 设成过去的时间戳签发,验证前端 401 处理与 token 刷新流程是否正确。

04排查签名失败

对比签发方与验证方的密钥、算法是否一致;payload 是否被中间件意外改写导致签名对不上。

05学习 JWT 原理

示例按钮现场演示「改一个字符 → 签名立刻失效」,比看 RFC 7519 直观百倍。

常见问题

10 个问答
JWT 签发和解析是安全的吗?数据会上传吗?

安全。签发用浏览器原生 Web Crypto API,解析用纯 JS,全程在本机内存完成,密钥与 token 不发送到任何服务器。可断网使用,关闭网络后仍能正常签发。

支持哪些算法?

签发支持 HS256 / HS384 / HS512(HMAC + SHA-256/384/512 对称签名)。RS256 / ES256 等非对称算法需要 PEM 密钥管理,计划在后续版本提供。

签发的 token 能直接用于生产环境吗?

签发逻辑本身是标准 HMAC 签名,与后端 openssl / jsonwebtoken 库结果一致,可以用于联调验证。但生产环境的密钥管理、过期策略、刷新机制应在服务端完成,不要依赖前端工具签发线上 token。

「已过期」徽章是怎么判定的?

解析成功后,工具读取 Payload 里的 exp 字段(秒级 Unix 时间戳)与本地时间对比。仅作参考——生产环境应在服务端校验 exp,并注意客户端时钟偏差。

HS256 和 RS256 怎么选?

单服务签发+验证用 HS256(共享密钥、实现简单、性能高);多服务分布式(鉴权服务签发、多个业务服务只验证)用 RS256(私钥签发、公钥验证)。后者更安全但开销大 100 倍以上。

为什么解析出来是乱码或报「不是合法 JSON」?

常见原因:① token 复制不完整(缺一段);② 带入了换行或空格;③ payload 被特殊字符破坏。合法 JWT 是三段 Base64URL 用英文句点 . 分隔,前后不应有其他字符。

Payload 里的信息别人能看到吗?

能。Payload 只是 Base64URL 编码,不是加密,任何拿到 token 的人都能直接读出全部字段。JWT 保证的是「内容没被篡改」,不是「内容保密」。敏感数据要么不放,要么用 JWE 加密。

签名验证失败可能是什么原因?

常见原因:① 密钥输错;② 密钥前后多了空格 / 换行 / 制表符;③ 算法不匹配(如 alg=HS256 用了 RSA 公钥);④ token 被篡改。前三种自查配置,第四种应立即作废 token 并通知用户重发。

移动端能用吗?

支持。移动端输入/输出自动垂直堆叠,操作按钮自适应布局。手机上可粘贴微信 / 飞书里收到的 token,一键解析查看。

exp 时间戳的单位是什么?

秒。RFC 7519 规定 exp / iat / nbf 都是 NumericDate(秒级 Unix 时间戳)。JavaScript 里用 Math.floor(Date.now() / 1000) 生成,直接用 Date.now()(毫秒)会得到一个「几万年后才过期」的 token。

相关工具

开发者分类

数据来源

隐私优先
算法:签发基于浏览器原生 Web Crypto API(HMAC + SHA-256/384/512),签名结果与 openssl / jsonwebtoken 等标准实现完全一致;解析为纯 JS 的 Base64URL 解码 + JSON.parse,无 WASM、无 polyfill。算法依据 RFC 7519(JWT)/ RFC 7515(JWS)。
隐私声明:所有运算均在浏览器内存完成,密钥与 token不上传任何服务器。本工具不记录任何输入、不埋任何分析点。可断网使用,关闭网络后再打开仍能正常签发与解析。