Chuyển đến nội dung
SPCXTools

Giải mã JWT

Giải mã JSON Web Token, kiểm tra hạn sử dụng và xác minh chữ ký HMAC — riêng tư, ngay trên trình duyệt của bạn.

Chạy cục bộ — tệp không bao giờ rời khỏi thiết bị của bạn

Đang tải công cụ…

Cách sử dụng Giải mã JWT

  1. 1Dán JWT (ba phần Base64URL phân cách bằng dấu chấm) vào ô Token, hoặc nhấp vào Tải mẫu.
  2. 2Đọc Header và Payload đã giải mã dưới định dạng JSON.
  3. 3Kiểm tra dòng trạng thái để xem token hợp lệ, đã hết hạn hay chưa có hiệu lực; các claim về thời gian được hiển thị dưới dạng ngày tháng dễ đọc.
  4. 4Đối với token HS256, HS384 hoặc HS512, hãy nhập secret để xác minh chữ ký cục bộ.

Giải mã JSON Web Token

JSON Web Token (JWT) là một chuỗi nhỏ gọn được dùng để truyền thông tin danh tính và quyền hạn giữa các hệ thống — thường gặp nhất dưới dạng header Authorization: Bearer sau khi đăng nhập. Nó trông giống như một đoạn văn bản ngẫu nhiên, nhưng thực chất gồm ba phần được mã hóa Base64URL: header, payload chứa các claim, và signature (chữ ký). Công cụ giải mã JWT này sẽ tách token, giải mã hai phần đầu thành định dạng JSON dễ đọc và giải thích các claim quan trọng. Quá trình giải mã và xác minh diễn ra cục bộ, do đó token của bạn không bao giờ bị gửi đi.

Tính năng

  • Header và payload được giải mã và định dạng dễ nhìn, kèm theo nút sao chép cho mỗi phần.
  • Giải thích các claim về thời gian: iat, nbf, exp và auth_time được chuyển đổi từ giây epoch sang ngày giờ theo múi giờ của bạn.
  • Kiểm tra hạn sử dụng giúp bạn biết ngay token đã hết hạn hay chưa có hiệu lực.
  • Xác minh chữ ký HMAC cho các thuật toán HS256, HS384 và HS512 bằng Web Crypto API của trình duyệt.
  • Hoạt động ngoại tuyến sau khi tải trang; không có dữ liệu nào bị gửi đi.

Khi nào nên sử dụng

Gỡ lỗi xác thực. Khi request thất bại với lỗi 401 Unauthorized, hãy giải mã token để kiểm tra xem nó đã hết hạn chưa, có được cấp cho đúng đối tượng (aud) hay không, hoặc có chứa đúng các role và scope dự kiến không.

Xây dựng và kiểm thử API. Xác minh xem server của bạn đã đưa đúng các claim dự kiến vào token với thời gian hết hạn chính xác chưa, trước khi phát hành.

Tìm hiểu cách hoạt động của OAuth và OpenID Connect. ID token và access token từ các nhà cung cấp danh tính thường là JWT. Việc giải mã một token thử nghiệm sẽ cho thấy nhà cung cấp chia sẻ những thông tin gì về người dùng.

Cấu trúc của JWT

header.payload.signature

  • Header — loại token và thuật toán ký, ví dụ {"alg":"HS256","typ":"JWT"}.
  • Payload — chứa các claim. Các claim tiêu chuẩn bao gồm iss (người phát hành), sub (chủ thể, thường là user ID), aud (đối tượng), exp, nbf, iat và jti (token ID). Ứng dụng có thể thêm các claim tùy chỉnh như name hoặc role.
  • Signature — được tạo bằng cách ký header.payload với một khóa bí mật (HMAC) hoặc khóa riêng tư (RSA, ECDSA, EdDSA). Nếu bất kỳ ai thay đổi dù chỉ một ký tự của header hoặc payload, chữ ký sẽ không còn khớp.

Vì payload chỉ được mã hóa (encode), tuyệt đối không đưa các thông tin bí mật như mật khẩu vào JWT. Để giải mã các dữ liệu Base64 khác, hãy sử dụng công cụ Base64; để kiểm tra bất kỳ timestamp nào, hãy dùng công cụ Chuyển đổi Unix Timestamp.

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

Dán token thật vào đây có an toàn không?
Token được giải mã và xác minh hoàn toàn trên trình duyệt của bạn, không bao giờ được gửi đến máy chủ của chúng tôi. Tuy nhiên, JWT là một thông tin xác thực — hãy coi nó như mật khẩu, tránh chia sẻ token production và ưu tiên dùng token test khi có thể.
Giải mã JWT có chứng minh token là thật không?
Không. Bất kỳ ai cũng có thể giải mã header và payload vì chúng chỉ được mã hóa Base64URL chứ không bị mã hóa bảo mật (encrypted). Token chỉ đáng tin cậy nếu chữ ký được xác minh bằng đúng khóa. Với token HMAC, bạn có thể xác minh tại đây bằng cách nhập secret; token RSA và ECDSA phải được xác minh bằng public key của nhà phát hành trong ứng dụng của bạn.
exp, iat và nbf có nghĩa là gì?
exp (thời gian hết hạn) là lúc token hết hiệu lực, iat (thời điểm phát hành) là lúc token được tạo, và nbf (không dùng trước) là thời điểm sớm nhất có thể sử dụng token. Cả ba đều là Unix timestamp tính bằng giây; công cụ giải mã sẽ chuyển đổi chúng thành ngày giờ theo múi giờ của bạn.
Tại sao lại báo token không hợp lệ?
JWT phải có chính xác ba phần cách nhau bằng dấu chấm, và hai phần đầu phải là JSON được mã hóa Base64URL. Hãy kiểm tra xem bạn đã copy toàn bộ token mà không dính tiền tố Bearer , dấu ngoặc kép hay dấu xuống dòng chưa.
Công cụ này có giải mã được token mã hóa (JWE) không?
Không. JWT mã hóa có năm phần và payload của chúng chỉ có thể đọc được bằng khóa giải mã. Công cụ này chỉ xử lý các token có chữ ký (JWS), cũng là loại được hầu hết các API sử dụng.