Giải mã JWT

Dán một JSON Web Token để xem header, payload và hạn dùng của nó. Token chỉ được đọc trong trình duyệt của bạn, không gửi đi đâu.

Tool chỉ đọc token, không kiểm tra chữ ký: token đọc được không có nghĩa là token đáng tin. Việc kiểm tra chữ ký phải làm ở máy chủ, với khoá bí mật hoặc khoá công khai.

Tối đa 16 KB. Có thể dán cả "Bearer ..." hoặc token bị xuống dòng.
Kết quả

Dán token vào ô bên trên để xem nội dung.

Cách sử dụng

  1. Dán token JWT vào ô nhập. Dạng "Bearer eyJ..." hoặc token bị xuống dòng đều được xử lý.
  2. Xem header (thuật toán, loại token) và payload (các claim) đã được giải mã và định dạng.
  3. Kiểm tra hạn dùng ở phần "Các claim thường gặp": tool so exp, nbf, iat với đồng hồ của máy bạn.
  4. Bấm "Sao chép" cạnh từng phần để lấy JSON. Nhớ rằng tool không kiểm tra chữ ký.

JWT là gì

  • JSON Web Token (JWT, RFC 7519) là chuỗi gồm ba phần cách nhau bởi dấu chấm: header, payload và chữ ký. Header và payload là JSON được mã hoá base64url, ai cũng đọc được. Mã hoá này không phải là bảo mật.
  • Chữ ký cho phép máy chủ phát hiện token bị sửa. Muốn kiểm tra chữ ký cần khoá, nên tool này không làm: nó chỉ giải mã để bạn xem nội dung. Đừng coi token là đáng tin chỉ vì đọc được.
  • Các claim thời gian exp (hết hạn), nbf (chưa dùng trước) và iat (thời điểm cấp) là số giây kể từ 00:00:00 UTC ngày 1/1/1970. Tool đổi chúng ra ngày giờ UTC và cho biết còn hạn hay không, theo đồng hồ của máy bạn.
  • Token có alg là "none" không có chữ ký. Máy chủ chấp nhận loại token này là một lỗi bảo mật nghiêm trọng, nên tool cảnh báo khi gặp.
  • Không nên dán token đang dùng thật của hệ thống quan trọng vào bất kỳ công cụ nào. Tool này không gửi token đi, nhưng token còn hạn vẫn nên được coi là bí mật: hãy ưu tiên token thử nghiệm hoặc đã hết hạn.
  • Giới hạn: token tối đa 16 KB. Token mã hoá (JWE, 5 phần) không đọc được.

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

Tool có gửi token của tôi lên máy chủ không?

Không. Token được giải mã ngay trong trình duyệt, không gửi và không lưu ở đâu.

Tool có kiểm tra được chữ ký không?

Không. Kiểm tra chữ ký cần khoá bí mật hoặc khoá công khai của bên phát hành. Tool chỉ cho bạn xem nội dung.

Vì sao payload đọc được mà không cần khoá?

Vì JWT thông thường chỉ được ký, không được mã hoá. Vì thế đừng đặt mật khẩu hay thông tin nhạy cảm vào payload.

Token của tôi báo "đã hết hạn" nhưng máy chủ vẫn nhận?

Tool so với đồng hồ của máy bạn, nếu đồng hồ lệch thì kết quả cũng lệch. Máy chủ còn có thể cho phép sai lệch nhỏ về thời gian.

Vì sao có token có 5 phần?

Đó là JWE, token được mã hoá. Nội dung của nó không đọc được nếu không có khoá giải mã.