X114

JWT 解码与安全分析工具

在浏览器中即时解析 JSON Web Token (JWT) 的 Header、Payload 载荷与过期状态。100% 纯前端内存解析,零网络上传,符合 RFC 7519 规范。

JWT Decoder & Security Inspector

Preset Samples:
231 chars
Valid Token Structure & Active ExpiryAlgorithm: HS256
Decoded Header (Algorithm & Token Type)
{
  "alg": "HS256",
  "typ": "JWT"
}
Decoded Payload (Claims & Subject Data)
{
  "sub": "usr_0a1b2c3d",
  "name": "Alex Qiang",
  "email": "alex@x114.org",
  "role": "admin",
  "iat": 1792150000,
  "exp": 1999999999
}
Expires (exp)
2033-05-18 03:33:19 UTC (3:33:19 AM)
in 2378d 15h
Issued At (iat)
2026-10-16 11:26:40 UTC (11:26:40 AM)
27d 0h ago
dGVzdF9zaWduYXR1cmVfaHNfcGxhY2Vob2xkZXI

100% Client-Side Inspection • Secrets & Bearer Tokens Never Leave Your Browser RAM

关于

本 JSON Web Token (JWT) 解码与安全分析工具 严格遵循 RFC 7519 与 RFC 7515 (JWS) 国际标准,提供高可靠的纯前端 JWT 结构解析、有效性语义分析与 Claims 声明审查。所有解析操作 100% 运行在您的本地浏览器内存中,绝不向任何外部网络上传 Bearer 令牌凭据、身份声明或用户敏感数据。


JWT 核心三段式架构与 RFC 7519 规范剖析

一个合法的标准 JSON Web Token 由点号(.)分割的三组 Base64URL 编码串构成:

  1. 标头(JOSE Header):声明凭证类型(typ: "JWT")与所采用的密码学数字签名算法(alg,如 HS256、RS256、ES256)。
  2. 有效载荷(Payload / Claims Set):包含经认证的实体信息(通常为用户或微服务身份)及业务声明。划分为保留声明(Registered Claims)、公共声明及私有业务声明。
  3. 防篡改数字签名(Cryptographic Signature):认证中心(IdP)使用对称密钥或非对称私钥,对 Base64URL 编码后的 Header 与 Payload 进行哈希签名产生的二进制摘要。签名赋予令牌防伪造、抗篡改与不可抵赖性。

RFC 7519 标准保留 Claims 字典速查

Claim 键名 英文全称 数据类型 规范标准含义与安全校验规则
iss Issuer (签发者) String / URI 标明颁发该令牌的认证中心地址(如 https://accounts.google.com)。网关必须校验签发者是否可信。
sub Subject (主体标识) String 该令牌所代表的主体全局唯一 ID(用户 UID、微服务 Client ID 等)。
aud Audience (受众目标) String / Array 标明该令牌预期的接收方服务。若 API 服务的受众标识不在 aud 中,必须坚决拒绝受理。
exp Expiration Time (过期时间) NumericDate (秒) 令牌过期的 Unix 时间戳(秒级)。服务端时间超过该值必须拒绝鉴权并触发刷新机制。
nbf Not Before (生效时间) NumericDate (秒) 令牌正式生效的起始时间。可用于预约生效的未来授权凭据。
iat Issued At (签发时间) NumericDate (秒) 令牌被签发生成的 Unix 时间戳。常用于判定令牌的最大允许存活时长。
jti JWT ID (唯一编号) String 该令牌的全局唯一随机字符串。网关配合分布式缓存(如 Redis)可防止恶意的重放攻击(Replay Attacks)。

密码学数字签名算法横向对比

签名算法 密码学原理 密钥类型 最佳应用架构 潜在安全风险与防范策略
HS256 HMAC with SHA-256 预共享单一对称密钥 单体应用、内网高吞吐微服务 RPC 密钥长度不足 256 位易遭字典暴力破解;多服务共享存在密钥泄露连带风险。
RS256 RSA-SHA256 (2048+ 位) 非对称公私钥对 企业级 SSO、OAuth 2.0 / OIDC 开放平台 需防范“算法混淆攻击”(攻击者诱导服务端用 RSA 公钥充当 HMAC 对称密钥校验)。
ES256 ECDSA (P-256 椭圆曲线) 椭圆曲线非对称密钥 现代云原生 API、移动 App、WebAuthn 依赖加密级高质量随机数发生器生成临时随机数,否则有私钥泄露风险。
EdDSA Edwards 曲线 (Ed25519) 现代高性能椭圆曲线 边缘计算鉴权 (Cloudflare Workers, Fastly) 天然免疫侧信道计时攻击,运算极快,安全性极高。
none 无签名纯文本 无 仅限内网脱敏单元测试 致命缺陷:若线上网关未禁用 alg: "none",黑客可无障碍伪造管理员权限令牌。

开发者后端服务端验签示例代码

1. Node.js & TypeScript (jsonwebtoken)

import jwt from 'jsonwebtoken';

interface UserClaims {
  sub: string;
  email: string;
  role: string;
}

export function verifyUserToken(token: string, secretKey: string): UserClaims {
  // 显式白名单指定 algorithms 防止算法混淆攻击
  return jwt.verify(token, secretKey, {
    algorithms: ['HS256'],
    issuer: 'https://auth.x114.org',
    audience: 'x114-api'
  }) as UserClaims;
}

2. Python 3 (PyJWT)

import jwt

def authenticate_request(bearer_token: str, public_pem: str) -> dict:
    """使用公钥安全验证 RS256 签名并核验过期时间与受众"""
    return jwt.decode(
        bearer_token,
        public_pem,
        algorithms=["RS256"],
        audience="x114-api",
        options={"require": ["exp", "iss", "sub"]}
    )

3. Go (github.com/golang-jwt/jwt/v5)

package auth

import (
	"errors"
	"github.com/golang-jwt/jwt/v5"
)

func ValidateToken(tokenString string, hmacSecret []byte) (*jwt.MapClaims, error) {
	token, err := jwt.Parse(tokenString, func(t *jwt.Token) (interface{}, error) {
		if _, ok := t.Method.(*jwt.SigningMethodHMAC); !ok {
			return nil, errors.New("unexpected signing algorithm")
		}
		return hmacSecret, nil
	})
	if err != nil || !token.Valid {
		return nil, errors.New("invalid or expired token")
	}
	claims := token.Claims.(jwt.MapClaims)
	return &claims, nil
}

常见问题