DeepSeal — 本地加密笔记应用,你的隐私只有你说了算。 免费下载 → ×
JWT

JWT 解析器

解析 JWT Token 的 Header、Payload、签名,检查过期时间,本地解析。

P1
JWT Token
签发时间 (iat)
2025/1/21 06:13:20
生效时间 (nbf)
未指定
过期时间 (exp)
2025/1/22 06:13:20
状态
已过期
Header(头部 · 红色段)
{
  "alg": "HS256",
  "typ": "JWT"
}
Payload(负载 · 紫色段)
{
  "sub": "1234567890",
  "name": "HyperGrad",
  "iat": 1737440000,
  "exp": 1737526400
}
Signature(签名 · 蓝色段)
signature-placeholder
签名验证需要服务端密钥,本工具仅做本地解析,不会向任何服务器发送 Token。

JWT 解析器

JWT(JSON Web Token,RFC 7519)是一种用于在网络应用之间安全传递声明的开放标准,常用于身份认证和信息交换。 JWT 由三部分组成:Header.Payload.Signature,用 . 分隔, 前两部分是 Base64Url 编码的 JSON,第三部分是用密钥计算的签名。

JWT 结构

  • Header:声明 Token 类型和签名算法(如 HS256、RS256)。
  • Payload:声明 Claims,包括标准声明(iss、sub、aud、exp、nbf、iat、jti)和自定义声明。
  • Signature:用密钥对 Header + Payload 计算的签名,防篡改。

常见 Claims

  • iss:签发者(Issuer)
  • sub:主题(Subject),通常是用户 ID
  • aud:受众(Audience)
  • exp:过期时间(Expiration),Unix 时间戳
  • nbf:生效时间(Not Before)
  • iat:签发时间(Issued At)
  • jti:JWT 唯一 ID(防重放)

JWT 安全最佳实践

JWT 不是加密的——这是最常被误解的点。Header 和 Payload 只是 Base64Url 编码,任何人都能解码查看内容。JWT 保证的是完整性(防篡改),不是机密性。如果你想加密 Payload 内容,应使用 JWE(JSON Web Encryption)。因此,绝不要在 JWT 里放敏感信息(密码、身份证号、支付信息),因为它们相当于明文。

签名算法选择:HS256(HMAC-SHA256)使用对称密钥,签发和验证用同一密钥,适合单体应用;RS256(RSA-SHA256)使用非对称密钥,私钥签发、公钥验证,适合微服务架构——认证服务持有私钥签发 Token,其他服务只需公钥即可验证,无需共享密钥。生产环境推荐 RS256。务必禁用 none 算法,否则攻击者可伪造无签名 Token。

Token 生命周期:JWT 一旦签发,在 exp 过期前始终有效,无法主动撤销(除非维护黑名单)。因此 access token 过期时间应短(15-30 分钟),配合 refresh token(长期,可撤销)使用。重要操作(改密码、支付)应额外验证而非仅依赖 JWT。Token 存储位置也有讲究:存在 HttpOnly Cookie 可防 XSS 读取但需防 CSRF;存在 localStorage 方便但易受 XSS 攻击。根据威胁模型权衡。

JWT 常见问答

JWT 是什么?
JWT(JSON Web Token)是一种紧凑的、URL 安全的令牌格式,用于在各方之间安全传输信息。由三部分组成:Header(算法类型).Payload(声明数据).Signature(签名),用点分隔,均 Base64Url 编码。
JWT 是加密的吗?
JWT 默认不是加密的。Header 和 Payload 只是 Base64 编码,任何人都能解码查看内容。JWT 保证的是完整性(防篡改)而非机密性。如需加密内容,应使用 JWE(JSON Web Encryption)。
JWT 的 exp、iat、nbf 是什么?
exp(Expiration Time)过期时间,iat(Issued At)签发时间,nbf(Not Before)生效时间,均为 Unix 时间戳。服务器验证 Token 时会检查这些字段,过期或未生效的 Token 会被拒绝。
JWT 和 Session 有什么区别?
Session 状态存在服务端,客户端只存 Session ID(通常在 Cookie),服务端查 Session 存储。JWT 是无状态的,Token 自带用户信息,服务端只需验签无需查询。JWT 适合微服务、跨域、移动端;Session 适合传统 Web 应用。

HyperGrad 生态还有这些站