Cách dùng Giải mã JWT
- Dán JWT (có hoặc không có tiền tố
Bearer) vào ô Token đã mã hóa, hoặc nhấn Tải mẫu. - Đọc header và payload đã giải mã; các huy hiệu sẽ hiển thị thuật toán và token đã hết hạn hay chưa.
- Kiểm tra bảng Claims để xem thời gian
exp,iatvànbfdưới dạng ngày giờ dễ đọc theo múi giờ máy bạn. - Tùy chọn: xác minh chữ ký bằng cách nhập khóa bí mật chung cho HS256/384/512, hoặc dán khóa công khai (PEM hoặc JWK) cho token RS, PS, ES và EdDSA.
JWT là gì?
JSON Web Token (JWT, đọc là “jót”, được định nghĩa trong RFC 7519) là một chuỗi gọn, an toàn cho URL, dùng để truyền các claims giữa các bên — thường là access token hoặc ID token trong OAuth 2.0 và OpenID Connect, được gửi qua header Authorization: Bearer …. JWT gồm ba phần được mã hóa Base64URL, ngăn cách bằng dấu chấm:
- Header — JSON mô tả token, ví dụ
{"alg":"HS256","typ":"JWT"}. - Payload — JSON chứa các claims: người dùng là ai, họ được phép làm gì và token hết hạn khi nào.
- Signature — được tính trên
header.payloadbằng khóa bí mật hoặc khóa riêng, nên chỉ cần thay đổi hai phần đầu là chữ ký sẽ không còn hợp lệ.
Lưu ý quan trọng: header và payload chỉ được mã hóa, không được mã hóa bảo mật. Bất kỳ ai có token đều có thể đọc chúng — và đó chính xác là việc công cụ này làm. Không bao giờ đặt khóa bí mật hoặc dữ liệu cá nhân nhạy cảm vào payload của JWT. (Có loại token được mã hóa — JWE, gồm năm phần — nhưng payload của nó chỉ đọc được khi có khóa giải mã.)
Registered claims
| Claim | Tên | Ý nghĩa |
|---|---|---|
iss | Issuer | Bên phát hành token (ví dụ URL máy chủ xác thực của bạn) |
sub | Subject | Người dùng hoặc thực thể mà token đại diện |
aud | Audience | Các API nên chấp nhận token này |
exp | Expiration | Thời điểm Unix sau đó token phải bị từ chối |
nbf | Not before | Thời điểm Unix trước đó token chưa có hiệu lực |
iat | Issued at | Thời điểm Unix token được tạo |
jti | JWT ID | ID duy nhất, hữu ích để ngăn tấn công replay |
Các claim thời gian là giây tính từ 1/1/1970 UTC — không phải mili giây, một lỗi phổ biến khi tạo token trong JavaScript bằng Date.now(). Công cụ sẽ chuyển chúng thành ngày giờ dễ đọc; với các mốc thời gian khác, hãy dùng Unix Timestamp Converter.
Thuật toán chữ ký
HS256/384/512 dùng HMAC với khóa bí mật chung: cùng một khóa vừa ký vừa xác minh, nên bất kỳ bên nào xác minh cũng có thể tự tạo token. RS256 (RSA), PS256 (RSA-PSS), ES256 (ECDSA P-256) và EdDSA dùng khóa riêng để ký và khóa công khai để xác minh — lựa chọn tốt hơn khi nhiều dịch vụ cần kiểm tra token. Các nhà cung cấp danh tính công bố khóa công khai dưới dạng JWKS tại một URL như /.well-known/jwks.json; bạn có thể dán JSON đó vào đây và khóa khớp với kid của token sẽ được chọn tự động. Việc xác minh sử dụng Web Crypto API của trình duyệt.
Danh sách kiểm tra bảo mật
- Luôn xác minh chữ ký trên máy chủ — chỉ giải mã thì không chứng minh được điều gì.
- Từ chối
alg: nonevà chỉ định rõ các thuật toán bạn mong đợi, để tránh tấn công nhầm lẫn thuật toán. - Kiểm tra
exp,nbf,issvàaud, chỉ cho phép sai lệch đồng hồ nhỏ. - Với HS256, hãy dùng khóa bí mật ngẫu nhiên có độ dài ít nhất 256 bit — Password Generator có thể tạo cho bạn.
Cũng được tìm dưới tên: jwt debugger, decode jwt, json web token là gì, kiểm tra jwt hết hạn, xác minh chữ ký jwt, jwt parser, bearer token decoder.
Các công cụ dùng kèm tốt với Giải mã JWT
- Công cụ tạo PKCE — Kiểm thử hoặc gỡ lỗi đăng nhập OAuth 2.0 / OpenID Connect với PKCE.
- Mã hóa / Giải mã Base64 — Chuyển văn bản sang Base64 và ngược lại với hỗ trợ đầy đủ UTF-8 (dấu tiếng Việt, emoji), chuyển sang Base64 an toàn cho URL, hoặc thả tệp vào để lấy chuỗi Base64 hay data URI.
- Tạo mã Hash — Tính mã hash MD5 và SHA cho mọi văn bản hoặc file ngay lập tức, tạo chữ ký HMAC và dán checksum mong đợi để kiểm tra file tải về.
- Định dạng JSON — Dán JSON để định dạng đẹp, nén hoặc kiểm tra.
Câu hỏi thường gặp
Dán JWT của tôi vào đây có an toàn không?
Có thể giải mã JWT mà không cần khóa bí mật không?
Làm sao để kiểm tra JWT đã hết hạn chưa?
exp — một timestamp Unix tính bằng giây. Công cụ này so sánh nó với đồng hồ thiết bị của bạn và hiển thị huy hiệu “Đã hết hạn” hoặc “Chưa hết hạn” cùng thời gian chính xác theo múi giờ của bạn.