🌐 VI

🔓 JWT Decoder

Dán một JWT (JSON Web Token) để giải mã ngay header và payload bằng base64url thành JSON định dạng đẹp. Các claim exp/iat/nbf được hiển thị theo thời gian dễ đọc, kèm huy hiệu cho biết token đã hết hạn hay chưa.

⚠️ Công cụ này chỉ giải mã — không xác minh chữ ký. Vì lý do bảo mật, cố ý không có ô nhập secret key. Nếu bạn cần xác minh chữ ký, hãy dùng thư viện JWT phía server.

Thêm công cụ cho nhà phát triển

HƯỚNG DẪN

Tìm hiểu thêm

01

1. Hiểu cấu trúc JWT

Một JWT có ba phần được ngăn cách bằng dấu chấm: header.payload.signature. Header chứa thuật toán ký (alg) và loại token (typ); payload chứa các claim thực tế (ID người dùng, quyền, thời điểm phát hành, v.v.), tất cả đều được mã hóa base64url. Signature là header+payload được ký bằng secret (hoặc khóa riêng), dùng để xác minh token không bị sửa đổi — nhưng công cụ này không thực hiện bước xác minh đó.

02

2. Các claim exp, iat và nbf

exp (expiration) là thời điểm token hết hạn, iat (issued at) là thời điểm token được phát hành, và nbf (not before) nghĩa là token chưa có hiệu lực trước thời điểm đó. Cả ba đều được lưu dưới dạng Unix timestamp (giây), nên không thể đọc ngay bằng mắt. Công cụ này hiển thị từng giá trị theo giờ địa phương và ISO 8601, đồng thời gắn huy hiệu "Expired" nếu exp đã nằm trong quá khứ.

03

3. Khi bạn cần xác minh chữ ký

Xác minh chữ ký JWT cần secret dùng để ký nó (nhóm HMAC, ví dụ HS256) hoặc public key tương ứng (nhóm RSA/ECDSA, ví dụ RS256/ES256). Đây là thao tác nhạy cảm và nên thực hiện phía server, vì vậy công cụ trình duyệt này chỉ giải mã (cho phép bạn xem nội dung) và không bao giờ yêu cầu secret. Để xác minh thực sự, hãy dùng thư viện JWT phía backend (jsonwebtoken, PyJWT, firebase-admin, v.v.).

Câu hỏi thường gặp

Công cụ này có thể dùng để giả mạo một JWT không?
Không. Nó chỉ giải mã (base64url-decode) — không bao giờ tạo hay xác minh chữ ký. Một chữ ký hợp lệ cần secret/private key chỉ issuer biết, và công cụ này không bao giờ nhận giá trị đó.
Vì sao không có ô nhập secret key?
Vì bảo mật. Việc dán secret vào công cụ trên trình duyệt dễ vô tình làm lộ thông tin, nên công cụ này được thiết kế để ngay từ đầu không nhận secret.
Làm sao biết token đã hết hạn?
Nếu payload có claim exp, nó sẽ tự động được so sánh với thời gian hiện tại và hiển thị huy hiệu "Expired" hoặc "Valid (not yet expired)".
Token tôi dán có được gửi lên server không?
Không. Việc giải mã diễn ra hoàn toàn trong JavaScript của trình duyệt của bạn và không bao giờ được gửi lên server.