Giải mã JWT
Giải mã và kiểm tra JSON Web Tokens kèm giải thích các trường thông tin
Thử một mẫu
Dán một JWT để xem tiêu đề, claim và chữ ký của nó.
Chữ ký chưa được xác minh. Việc giải mã không chứng minh token là xác thực hay đáng tin cậy.
Thời hạn của token
—
- Thuật toán
- —
- Thời điểm phát hành
- —
- Không hợp lệ trước
- —
- Thời điểm hết hạn
- —
Claim đã đăng ký
Giới thiệu công cụ Giải mã JWT
Công cụ Giải mã JWT là công cụ trực tuyến miễn phí giúp giải mã ngay mọi JSON Web Token thành ba phần: Header, Payload và Signature. JSON Web Token (JWT) là tiêu chuẩn mở (RFC 7519) dùng để truyền thông tin an toàn giữa các bên dưới dạng đối tượng JSON gọn nhẹ, độc lập. Đây là nền tảng của xác thực và phân quyền hiện đại trong ứng dụng web, API và microservice.
Mỗi JWT gồm ba đoạn mã hóa Base64URL, ngăn cách bằng dấu chấm. Header chỉ định thuật toán ký (như HS256 hoặc RS256) và loại token. Payload chứa các claim: cặp khóa-giá trị mang dữ liệu người dùng, quyền hạn, thời gian hết hạn và siêu dữ liệu khác. Signature đảm bảo token không bị sửa đổi và chỉ có thể xác minh bằng khóa bí mật hoặc khóa công khai đúng.
Công cụ này giải mã JWT hoàn toàn trong trình duyệt của bạn, không gửi qua máy chủ, nên token của bạn không bao giờ bị truyền đi hay lưu ở bên ngoài. Công cụ cũng kiểm tra trạng thái hết hạn, định dạng mốc thời gian thành ngày giờ dễ đọc và giải thích các registered claim chuẩn như iss, sub, aud, exp, iat và nbf.
Tính năng chính
- Giải mã ngay mọi JWT thành các phần Header, Payload và Signature
- Tự động kiểm tra thời hạn, hiển thị rõ trạng thái “Token Not Expired”, “Token Not Yet Active” hoặc “Token Expired”
- Định dạng dễ đọc cho mốc thời gian Unix (exp, iat, nbf), kèm hiển thị múi giờ
- Giải thích cho mọi registered claim chuẩn (iss, sub, aud, exp, nbf, iat, jti)
- Nút sao chép một cú nhấp riêng cho header, payload và signature
- Giải mã theo thời gian thực khi bạn gõ hoặc dán, xử lý đầu vào có độ trễ
- Các phần được tô màu: xanh dương cho Header, tím cho Payload, cam cho Signature
- Huy hiệu thuật toán (HS256, RS256, ES256, v.v.) hiển thị nổi bật trong biểu ngữ trạng thái
- Có token mẫu để thử nhanh và xem minh họa
- Xử lý 100% trên trình duyệt, không gửi dữ liệu đến bất kỳ máy chủ nào
Cách dùng
- Dán JWT của bạn: Sao chép JSON Web Token từ ứng dụng, phản hồi API, công cụ dành cho nhà phát triển của trình duyệt hoặc hệ thống xác thực rồi dán vào ô nhập.
- Xem các phần đã giải mã: Công cụ tách token ngay thành Header, Payload và Signature, hiển thị từng phần trong khung đã định dạng và tô màu.
- Kiểm tra thời hạn: Biểu ngữ trạng thái ở trên cùng cho biết token còn hiệu lực hay đã hết hạn, kèm thời điểm hết hạn chính xác và đồng hồ đếm ngược.
- Đọc giải thích claim: Các registered claim chuẩn như iss, sub, exp và iat được chú thích kèm mô tả để bạn hiểu từng trường có ý nghĩa gì.
- Sao chép từng phần: Dùng nút sao chép ở bất kỳ phần nào để chép JSON đã định dạng vào bộ nhớ tạm, dùng cho tài liệu hoặc gỡ lỗi.
- Thử với mẫu: Nhấp nút “Sample Token” để nạp JWT dựng sẵn và xem bộ giải mã hoạt động thế nào trước khi dán token của bạn.
Trường hợp sử dụng
- Gỡ lỗi xác thực: Nhanh chóng kiểm tra các JWT do máy chủ xác thực trả về để xác minh claim, vai trò và quyền hạn được đặt đúng.
- Phát triển API: Giải mã access token khi tích hợp API để xác nhận payload chứa đúng ID người dùng, phạm vi quyền và thời gian hết hạn như mong đợi.
- Kiểm tra bảo mật: Xem xét token để phát hiện lộ dữ liệu nhạy cảm, thuật toán yếu (như “none”) hoặc thời hạn quá dài.
- Học tập & giáo dục: Hiểu cấu trúc JWT bằng cách giải mã token mẫu và đọc phần mô tả claim có chú thích do công cụ cung cấp.
- Xử lý sự cố token hết hạn: Xác định lỗi xác thực có do token hết hạn hay không bằng cách đối chiếu claim exp với thời gian hiện tại.
- Gỡ lỗi microservice: Kiểm tra token truyền giữa các dịch vụ để xác minh dịch vụ phía trước phát hành JWT có cấu trúc đúng và claim chính xác.
- Xác thực luồng OAuth: Giải mã ID token và access token từ luồng OAuth 2.0 và OpenID Connect để xác minh giá trị issuer, audience và scope.
- Tài liệu: Sao chép JSON header và payload đã giải mã vào tài liệu API hoặc runbook để minh họa cấu trúc token mong đợi.
Câu hỏi thường gặp
Công cụ này có miễn phí không?
Có. Công cụ Giải mã JWT hoàn toàn miễn phí, không cần tài khoản, không giới hạn sử dụng và không có quảng cáo cản trở chức năng.
Dữ liệu của tôi có an toàn không?
Chắc chắn rồi. Toàn bộ quá trình giải mã diễn ra trong trình duyệt của bạn bằng JavaScript. JWT của bạn không bao giờ được gửi đến máy chủ, nên công cụ an toàn để kiểm tra token môi trường chính thức.
Công cụ này có xác minh chữ ký JWT không?
Không. Việc xác minh chữ ký cần khóa bí mật (với HMAC) hoặc khóa công khai (với RSA/ECDSA), và không thể thực hiện an toàn trong trình duyệt phía máy khách. Hãy dùng thư viện phía máy chủ để xác thực chữ ký.
HS256 và RS256 khác nhau thế nào?
HS256 là thuật toán đối xứng, dùng một khóa bí mật chung cho cả việc ký và xác minh. RS256 là thuật toán bất đối xứng, dùng khóa riêng để ký và khóa công khai để xác minh, rất phù hợp cho hệ thống phân tán.
Tôi có thể giải mã JWT được mã hóa (JWE) không?
Công cụ này giải mã JWT đã ký (JWS). JWT được mã hóa (JWE) cần khóa giải mã và không được bộ giải mã này hỗ trợ.
Tại sao token của tôi hiển thị là đã hết hạn?
Công cụ so sánh claim exp (thời hạn) với thời gian hệ thống hiện tại của bạn. Nếu mốc thời gian hết hạn đã qua, token được đánh dấu là hết hạn. Hãy kiểm tra đồng hồ hệ thống của bạn có chính xác không.
Mẹo và thực hành tốt nhất
- Giữ token có thời hạn ngắn: Dùng thời hạn 15 đến 60 phút cho access token và kết hợp với refresh token an toàn, chỉ dùng HTTP (HTTP-only) để duy trì phiên.
- Không bao giờ lưu bí mật trong payload: JWT chỉ được mã hóa dạng mã, không được mã hóa bảo mật. Bất kỳ ai có token đều giải mã được payload, nên đừng đưa mật khẩu, số thẻ tín dụng hay dữ liệu nhạy cảm khác vào.
- Luôn xác thực phía máy chủ: Giải mã JWT trong trình duyệt hữu ích cho việc gỡ lỗi, nhưng hãy luôn xác minh chữ ký ở backend trước khi tin bất kỳ claim nào.
- Dùng thuật toán bất đối xứng cho hệ thống phân tán: Chọn RS256 hoặc ES256 khi nhiều dịch vụ cần xác minh token độc lập mà không chia sẻ khóa bí mật.
- Theo dõi kích thước token: Payload lớn làm tăng kích thước header của yêu cầu và có thể làm chậm lệnh gọi API. Hãy giữ claim ở mức tối thiểu và dùng tham chiếu (như ID người dùng) thay vì nhúng cả hồ sơ người dùng.
- Xoay vòng khóa ký thường xuyên: Triển khai chiến lược xoay vòng khóa bằng tham số header kid (Key ID) để chuyển giữa các khóa ký mà không làm mất hiệu lực mọi token hiện có.