RFC 7519 规范与 HMAC6 分钟阅读最后更新于
JWT Token 架构与签名验证:RFC 7519 规范技术解析
本地解析 JWT Header 与 Payload,验证 HMAC-SHA256 签名,安全排查 Token 过期问题。
W
WEBioDD 工程团队•100% 浏览器本地运行 & 零信任
核心要点
- JWT 由点号分隔的 3 部分 Base64URL 构成:头部、负载与签名。
- 签名保证数据未被篡改,但并不加密内容,Payload 声明是明文可见的。
- 务必严格校验 exp(过期时间)与 nbf(生效时间)声明以防重放攻击。
- 严禁将生产环境的敏感密钥和 Token 粘贴至任何云端外部解析平台。
100% In-Browser & Local Execution
本地解码与调试 JWT Token
直接在浏览器中解析 Header、Payload 和签名,绝不将密钥传输到远程服务器。
- RFC 7519 compliant parser
- HMAC-SHA256 signature verify
- Live expiration countdown
- 100% client-side execution
01.JWT Token Anatomy: Header, Payload, and Signature
A JSON Web Token (JWT) is a compact, URL-safe string divided into three Base64URL-encoded segments: Header.Payload.Signature. The Header declares the signing algorithm (e.g., HS256 for HMAC-SHA256). The Payload contains claims (user ID, roles, expiration). The Signature is computed by hashing the encoded header and payload with a secret key, ensuring the token has not been tampered with.
typescriptClient-side JWT parsing without server transmission
// JWT Decoding Algorithm
function decodeJWT(token: string) {
const [headerB64, payloadB64, signatureB64] = token.split('.');
const header = JSON.parse(atob(headerB64.replace(/-/g, '+').replace(/_/g, '/')));
const payload = JSON.parse(atob(payloadB64.replace(/-/g, '+').replace(/_/g, '/')));
return { header, payload, signature: signatureB64 };
}02.HMAC-SHA256 Signature Verification Process
To verify a JWT signature locally, concatenate the Base64URL-encoded header and payload with a dot, then compute HMAC-SHA256 using your secret key via Web Crypto API. Compare the result against the provided signature. A mismatch indicates tampering or an incorrect secret.
Never paste production secret keys into online JWT debuggers. Our tool runs 100% locally in your browser memory.
03.Token Expiration & Timestamp Claims
The exp claim (expiration time) is a Unix timestamp defining when the token becomes invalid. The nbf (not-before) claim prevents premature token usage. Always validate these claims on the server and display countdown timers to users in dashboards.
Local JWT Debugger vs. Remote Online Validators
Technical architectural comparison between local browser execution and cloud server processing.
| Security Aspect | Local Browser Tool | Third-Party JWT.io Sites |
|---|---|---|
| Secret Key Exposure | Never leaves browser memory | Transmitted over HTTPS POST |
| Token Payload Privacy | Decoded in local RAM only | Sent to remote servers & logged |
| Validation Latency | Instant (sub-millisecond) | 150ms - 500ms network delay |
| Offline Capability | Works without internet | Fails when disconnected |
How to Decode and Verify JWT Tokens
Step-by-step instructions for JWT inspection and validation.
1
Paste JWT Token
Copy your JWT string from API responses or browser cookies and paste into the debugger input field.
2
Inspect Header & Payload
View decoded JSON claims including user ID, roles, issued-at (iat), and expiration (exp) timestamps.
3
Verify Signature (Optional)
Enter your secret key to validate HMAC signature integrity (never use production keys on public tools).
4
Check Expiration Status
Review the live countdown timer showing time remaining until token expiry.
JWT Security Best Practices
- ✓Always use HTTPS to prevent JWT interception during transmission.
- ✓Set short expiration times (15-60 minutes) and refresh tokens via secure endpoints.
- ✓Never store sensitive data in JWT payloads; they are NOT encrypted.
- ✓Validate signatures and expiration timestamps on every API request server-side.
Frequently Asked Questions
No. JWT payloads are Base64URL-encoded, which is easily decoded. Never store passwords or PII in JWT claims.