Trình giải mã JWT

Giải mã tiêu đề và nội dung của một JSON Web Token (không xác minh chữ ký)

Chữ ký được hiển thị thô — công cụ này không xác minh nó. Để xác minh tính xác thực, hãy sử dụng một máy chủ với khóa bí mật/công khai.

JWT là gì?

Một JSON Web Token là ba phần được mã hóa Base64URL tách biệt bởi dấu chấm: một tiêu đề (thuật toán nào được sử dụng), một nội dung (các yêu cầu — thường là ID người dùng, thời gian hết hạn, phạm vi), và một chữ ký. Tiêu đề và nội dung KHÔNG được mã hóa, chỉ được mã hóa — bất kỳ ai có token đều có thể đọc chúng. Chữ ký chứng minh rằng token không bị can thiệp.

Trình giải mã tách ba phần, giải mã Base64URL hai phần đầu tiên, và in đẹp JSON. Nó KHÔNG xác minh chữ ký — điều đó yêu cầu khóa bí mật hoặc công khai của máy chủ phát hành. Đừng dán token môi trường sản xuất vào các trình giải mã không đáng tin cậy; công cụ này chỉ chạy trên trình duyệt và không bao giờ tải lên, nhưng như một thói quen, hãy sử dụng token từ môi trường phát triển của bạn để thử nghiệm.

Trường hợp sử dụng

  • Kiểm tra một JWT của bên thứ ba — dán một tiêu đề Authorization để đọc tiêu đề và nội dung mà không cần tin tưởng vào một trình gỡ lỗi từ xa.
  • Gỡ lỗi các lỗi xác thực — xác minh các yêu cầu exp / iat / aud khớp với những gì mà backend của bạn mong đợi khi một 401 xảy ra trong môi trường phát triển.
  • Kiểm tra các token OAuth / OIDC — giải mã một token truy cập hoặc token id được trả về bởi Google, Auth0 hoặc Okta để xem các yêu cầu của người dùng.
  • Dạy cấu trúc JWT — cho sinh viên thấy ba đoạn Base64 và cách ký bảo vệ nhưng không mã hóa nội dung.

Ví dụ

Decoding a sample token
Input
eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1c2VyXzEiLCJleHAiOjE3MDAwMDAwMDB9.signature
Output
Header:
{"alg": "HS256"}

Payload:
{"sub": "user_1", "exp": 1700000000}

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

Trình giải mã có xác minh chữ ký không?

Không — xác minh yêu cầu khóa bí mật (HS256) hoặc khóa công khai (RS256) được sử dụng để ký token. Trình giải mã chỉ cho bạn thấy những gì bên trong; sự tin tưởng đến từ việc xác minh phía máy chủ.

Nội dung JWT có được mã hóa không?

Không, chỉ được mã hóa Base64. Bất kỳ ai có token đều có thể đọc các yêu cầu. Sử dụng JWE (JWT được mã hóa) nếu các yêu cầu cần được bảo mật.

Yêu cầu `exp` có nghĩa là gì?

Dấu thời gian Unix tại thời điểm token hết hạn. Các token quá hạn `exp` nên bị máy chủ từ chối. Trình giải mã đánh dấu các token đã hết hạn cho bạn.

Tôi có thể giải mã một token bị lỗi không?

Nếu một phần không thể giải mã Base64 hoặc phân tích cú pháp như JSON, trình giải mã sẽ hiển thị một lỗi chỉ vào phần gây lỗi.

Token của tôi có bị tải lên không?

Không. Giải mã hoàn toàn bằng JavaScript — token của bạn vẫn ở trên thiết bị của bạn.