Giải mã & xác minh JWT

Dán JSON Web Token vào đây để xem header và payload, kiểm tra thời điểm hết hạn và xác minh chữ ký. Việc giải mã diễn ra ngay trên trình duyệt của bạn — token không bao giờ rời khỏi máy.

Cập nhật
🔒 Token của bạn được giải mã và xác minh cục bộ trên trình duyệt. Token không bao giờ được gửi lên máy chủ, ghi log hay lưu trữ.
Header
Payload

Claims

Xác minh chữ ký (không bắt buộc)

Dữ liệu của bạn không bao giờ rời khỏi máy tính. Mọi xử lý diễn ra 100% cục bộ trong trình duyệt của bạn.

Công cụ này có hữu ích không?0.0 0 lượt đánh giá
Tạo code verifier và code challenge S256 cho OAuth 2.0 PKCE ngay trên trình duyệt, kèm state, nonce, URL xác thực và lệnh đổi token bằng curlCông cụ tạo PKCE →

Cách dùng Giải mã JWT

  1. 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.
  2. Đọ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.
  3. Kiểm tra bảng Claims để xem thời gian exp, iat và nbf dưới dạng ngày giờ dễ đọc theo múi giờ máy bạn.
  4. 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:

  1. Header — JSON mô tả token, ví dụ {"alg":"HS256","typ":"JWT"}.
  2. 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.
  3. Signature — được tính trên header.payload bằ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

ClaimTênÝ nghĩa
issIssuerBên phát hành token (ví dụ URL máy chủ xác thực của bạn)
subSubjectNgười dùng hoặc thực thể mà token đại diện
audAudienceCác API nên chấp nhận token này
expExpirationThời điểm Unix sau đó token phải bị từ chối
nbfNot beforeThời điểm Unix trước đó token chưa có hiệu lực
iatIssued atThời điểm Unix token được tạo
jtiJWT IDID 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: none và 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, iss và 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?
Việc giải mã và xác minh chạy hoàn toàn trên trình duyệt của bạn — token không được gửi lên bất kỳ máy chủ nào, không được lưu lại hay đưa vào URL. Tuy vậy, hãy coi token production như mật khẩu: ưu tiên token đã hết hạn hoặc token thử nghiệm, và không bao giờ chia sẻ token đang hoạt động.
Có thể giải mã JWT mà không cần khóa bí mật không?
Có. Header và payload chỉ là JSON được mã hóa Base64URL, ai cũng đọc được. Khóa bí mật hoặc khóa riêng chỉ cần để xác minh chữ ký, tức là để chứng minh token là xác thực và không bị sửa đổi.
Làm sao để kiểm tra JWT đã hết hạn chưa?
Hãy xem claim 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.
Khác biệt giữa HS256 và RS256 là gì?
HS256 dùng một khóa bí mật chung để ký và xác minh (HMAC đối xứng). RS256 ký bằng khóa riêng RSA và xác minh bằng khóa công khai (bất đối xứng), nên bên xác minh không thể tự tạo token.
Tại sao xác minh thất bại dù tôi nhập đúng khóa bí mật?
Hãy kiểm tra xem khóa có được lưu dưới dạng Base64 không (chọn tùy chọn tương ứng), có khoảng trắng hoặc ký tự xuống dòng thừa không, và token có bị sửa đổi không — chỉ một ký tự thay đổi trong header hoặc payload cũng làm chữ ký mất hiệu lực.
Tôi có thể cài Giải mã JWT như một ứng dụng web và dùng khi không có mạng không?
Có. Giải mã JWT là một ứng dụng web (PWA) có thể cài đặt — cài trực tiếp từ trình duyệt, không cần tải từ cửa hàng ứng dụng. Trên Chrome hoặc Edge (Windows, macOS, Linux, ChromeOS) hoặc Android, bấm Cài đặt ứng dụng ở đầu trang này; trên iPhone và iPad, dùng Chia sẻ → Thêm vào Màn hình chính; trên Mac, dùng File → Add to Dock trong Safari 17 trở lên. Sau đó ứng dụng mở trong cửa sổ riêng với biểu tượng riêng, và vì chạy hoàn toàn trên trình duyệt nên vẫn hoạt động khi không có mạng. Firefox trên máy tính không thể cài ứng dụng web. Cách cài đặt hoạt động thế nào.

Công cụ liên quan