Trình giải mã JWT

Giải mã và kiểm tra phần đầu và payload của JSON Web Token.

Đang tải công cụ…

Trình giải mã JWTDán một JWT để xem ngay phần đầu và payload đã giải mã của nó, với các yêu cầu thời gian iat, nbf và exp được hiển thị dưới dạng ngày dễ đọc cùng huy hiệu hết hạn/hợp lệ trực tiếp. Việc giải mã diễn ra hoàn toàn trong trình duyệt của bạn, nên các token không bao giờ được gửi đi đâu — nhưng hãy nhớ rằng chữ ký không được xác minh ở đây, vì vậy đừng bao giờ tin tưởng payload cho đến khi nó được xác thực ở phía máy chủ.

Trình giải mã JWT là gì?

JWT Decoder là một công cụ trực tuyến miễn phí giải mã và kiểm tra JSON Web Token (JWT) để các nhà phát triển có thể đọc nội dung của token truy cập, token ID hoặc token bearer mà không cần phỏng đoán. Dán một token theo định dạng chuẩn header.payload.signature và nó sẽ giải mã header và payload bằng base64url, in đẹp cả hai dưới dạng JSON đã định dạng, và hiển thị các yêu cầu thời gian iat, nbf và exp dưới dạng ngày dễ đọc cùng huy hiệu hết hạn/hợp lệ trực tiếp. Công cụ được xây dựng cho các kỹ sư backend và frontend, người kiểm thử QA và người tích hợp API đang gỡ lỗi các luồng xác thực, phiên OAuth/OIDC hoặc các vấn đề về hết hạn token. Lưu ý rằng đây là trình giải mã, không phải trình xác minh — nó không kiểm tra chữ ký, vì vậy chỉ dùng để kiểm tra.

Cách sử dụng Trình giải mã JWT

  1. Sao chép JWT của bạn (header.payload.signature) từ ứng dụng, công cụ dành cho nhà phát triển của trình duyệt, hoặc một header Authorization: Bearer.
  2. Dán nó vào vùng văn bản 'JWT token'.
  3. Đọc JSON đã giải mã, được in đẹp trong các phần Header và Payload bên dưới ô nhập.
  4. Nếu payload bao gồm iat, nbf hoặc exp, hãy kiểm tra các thẻ thống kê Issued (iat), Not before (nbf) và Expires (exp) cùng huy hiệu hết hạn/hợp lệ để xem vòng đời của token.
  5. Dùng nút Sao chép trên Header hoặc Payload để sao chép JSON đã định dạng, hoặc nhấp Xóa để đặt lại ô nhập.

Ví dụ

Giải mã một header JWT

Đầu vào

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0In0.sig

Đầu ra

{
  "alg": "HS256",
  "typ": "JWT"
}

Phần Header hiển thị JSON đã giải mã, được in đẹp của phân đoạn đầu tiên.

Đọc các yêu cầu hết hạn

Dán một token có payload chứa exp/iat/nbf. Công cụ chuyển đổi mỗi yêu cầu tính bằng giây epoch thành một ngày địa phương dễ đọc và hiển thị huy hiệu xanh 'hợp lệ' hoặc đỏ 'hết hạn' bên cạnh giá trị Expires (exp), được làm mới mỗi giây.

Token sai định dạng

Đầu vào

not-a-jwt

Đầu ra

Malformed token — expected header.payload.signature

Một chuỗi không có ít nhất một phân đoạn header và một phân đoạn payload (không có dấu chấm phân tách) sẽ kích hoạt lỗi này thay vì được giải mã.

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

Công cụ này có xác minh chữ ký JWT không?
Không. Nó chỉ giải mã và hiển thị header và payload — nó không xác minh chữ ký. Đừng bao giờ tin tưởng payload đã giải mã cho đến khi chữ ký được xác thực ở phía máy chủ; hãy coi kết quả chỉ là để kiểm tra.
Nó mong đợi định dạng token nào?
Một JWT chuẩn với ít nhất phần header.payload (header.payload.signature). Nó tách tại các dấu chấm và giải mã hai phân đoạn đầu tiên bằng base64url, nên phần chữ ký bị bỏ qua trong quá trình giải mã.
Nó hiển thị các yêu cầu thời gian nào?
Nó hiển thị các yêu cầu giây epoch dạng số chuẩn iat (thời điểm phát hành), nbf (không trước), và exp (hết hạn), định dạng mỗi yêu cầu thành một ngày địa phương dễ đọc. Nó đánh dấu các token đã hết hạn và cảnh báo khi một token chưa hợp lệ vì nbf nằm trong tương lai. Các thẻ thống kê chỉ xuất hiện khi có ít nhất một trong các yêu cầu này.
Token của tôi có được tải lên hay gửi đi đâu không?
Không. Mọi thứ chạy hoàn toàn ở phía máy khách trong trình duyệt của bạn bằng cách dùng giải mã base64 và JSON tích hợp sẵn — token của bạn không bao giờ được tải lên bất kỳ máy chủ nào, điều này giúp việc kiểm tra các token truy cập nhạy cảm trở nên an toàn.
Tại sao tôi gặp lỗi với một token trông có vẻ hợp lệ?
Nếu đầu vào có ít hơn hai phân đoạn hoặc header/payload trống, bạn sẽ thấy thông báo 'Malformed token', và nếu một phân đoạn không phải là JSON được mã hóa base64url hợp lệ, bạn sẽ thấy lỗi 'invalid'. Hãy chắc chắn rằng bạn đã dán toàn bộ token mà không có khoảng trắng thừa hoặc dấu ngoặc kép bao quanh.

Công cụ liên quan