Giải mã JWT
Giải mã mọi JSON Web Token ngay trong trình duyệt: xem header và payload, exp, iat và nbf dưới dạng ngày giờ thật theo múi giờ của bạn, và token đã hết hạn chưa.
Tóm tắt
Header (phần đầu)
Payload (claim)
Token và chữ ký
Đọc mọi JWT mà không gửi nó đi đâu cả
Dán một JSON Web Token và công cụ sẽ tách nó thành ba phần: header (thuật toán dùng để ký), payload (các claim: người dùng là ai, được truy cập gì và khi nào token hết hạn) và chữ ký. JSON được định dạng để bạn đọc chỉ trong nháy mắt.
Các claim thời gian được đổi thành ngày giờ thật. exp, iat và nbf được hiển thị theo múi giờ của bạn, theo UTC và dạng “20 phút nữa” hay “3 ngày trước”, còn trạng thái cho biết ngay token còn hiệu lực, đã hết hạn hay chưa có hiệu lực.
Token thường cấp quyền vào tài khoản thật, vì vậy mọi thứ được giải mã trong trình duyệt của bạn. Token không bao giờ được tải lên máy chủ của chúng tôi, ghi log hay lưu lại. Cách này an toàn hơn dán nó vào chatbot hoặc trang web gửi nó lên máy chủ.
Cách giải mã JWT
- Sao chép token từ ứng dụng, header
Authorization, cookie hoặc công cụ dành cho nhà phát triển của trình duyệt. - Dán vào ô. Tiền tố
Bearer, dấu ngoặc kép, khoảng trắng và xuống dòng được tự động loại bỏ. - Đọc phần tóm tắt: trạng thái, thuật toán, bên phát hành, chủ thể, đối tượng nhận và thời điểm phát hành, hết hạn chính xác.
- Dùng nút sao chép để đưa JSON đã định dạng của header hoặc payload vào báo cáo lỗi hay ghi chú của bạn.
Ý nghĩa của các claim phổ biến
exp(expiration time): sau thời điểm này token phải bị từ chối.iat(issued at): thời điểm token được tạo.nbf(not before): không được chấp nhận token trước thời điểm này.iss(issuer): ai tạo ra token, thường là URL máy chủ đăng nhập của bạn.sub(subject): token nói về ai, thường là ID người dùng.aud(audience): ứng dụng hoặc API mà token dành cho.algvàkid(trong header): thuật toán ký như HS256 hoặc RS256, và ID của khóa đã ký.
Ngày trong JWT là giá trị NumericDate: số giây kể từ ngày 1 tháng 1 năm 1970 UTC. Công cụ chuyển đổi giúp bạn, nên không cần thêm công cụ đổi timestamp riêng.
Mẹo gỡ lỗi
- Nếu API trả về 401 ngay sau khi đăng nhập, hãy kiểm tra
expvànbftrước. Đồng hồ máy chủ chạy nhanh hoặc chậm vài phút là nguyên nhân thường gặp; hầu hết thư viện cho phép một khoảng sai lệch nhỏ. - Một ngày ở hàng chục nghìn năm sau nghĩa là giá trị đã được ghi bằng mili giây thay vì giây. Công cụ sẽ cảnh báo khi điều này xảy ra.
- So sánh
audvàissvới những gì API của bạn mong đợi. Token cấp cho ứng dụng hoặc môi trường khác (staging thay vì production) là nguyên nhân thường gặp của lỗi “token không hợp lệ”. - Header có
algbằngnonenghĩa là token không được ký. Đừng bao giờ chấp nhận những token như vậy trên production.
Giới hạn và điều cần biết
- Giải mã không phải là xác minh. Ai cũng có thể tạo token với bất kỳ claim nào; chỉ việc kiểm tra chữ ký bằng đúng khóa, trên máy chủ của bạn, mới chứng minh token là thật. Công cụ này không xác minh chữ ký.
- Payload của JWT thông thường chỉ được mã hóa base64, không được mã hóa bảo mật. Ai có token cũng đọc được, nên đừng bao giờ đặt mật khẩu hay bí mật vào claim.
- Token mã hóa (JWE, năm phần) không thể đọc nếu không có khóa, nên chỉ hiển thị header.
- Các con số được hiển thị đúng như trong token, nên ID số dài không bao giờ bị làm tròn.
Câu hỏi thường gặp
Dán token thật vào đây có an toàn không?
Có. Việc giải mã chạy bằng JavaScript trong trình duyệt và token không bao giờ được gửi đến máy chủ của chúng tôi. Dù vậy, hãy đối xử với token đang hoạt động như mật khẩu: đừng chia sẻ qua ảnh chụp màn hình hay tin nhắn, và để chúng tự hết hạn.
Công cụ này có cho biết token có hợp lệ không?
Công cụ cho biết token đã hết hạn hay chưa có hiệu lực dựa trên các ngày trong đó. Công cụ không thể biết chữ ký có thật hay không, vì việc đó cần khóa bí mật hoặc khóa công khai mà chỉ máy chủ của bạn nên giữ.
Vì sao token vừa nhận đã báo hết hạn?
Hãy kiểm tra đồng hồ của máy chủ phát hành và chắc chắn exp tính bằng giây, không phải mili giây. Nếu iat cũng lùi về quá khứ vài giờ, có lẽ đồng hồ máy chủ bị sai.
Giải mã JWT khác gì giải mã Base64?
JWT là ba phần mã hóa Base64URL nối với nhau bằng dấu chấm. Công cụ giải mã Base64 đọc từng phần một, còn công cụ giải mã JWT tự tách token, hiểu bảng chữ cái an toàn cho URL và việc thiếu ký tự đệm, đồng thời đổi ngày thành giờ dễ đọc.
Có dùng được khi không có mạng không?
Có. Sau khi trang đã tải xong, bạn có thể ngắt internet và tiếp tục giải mã token.
Công cụ liên quan
- Giải mã Base64: Giải mã chuỗi Base64 về văn bản dễ đọc ngay lập tức. Xem header xác thực, token, payload API và nội dung email. Base64 decoder online miễn phí.
- Kiểm tra & định dạng JSON: Kiểm tra và định dạng JSON online. Tìm lỗi cú pháp, biến JSON nén một dòng thành code thụt lề dễ đọc. JSON formatter miễn phí, không cần đăng ký.
- Giải mã URL: Giải mã URL và query string bị percent-encoding về văn bản dễ đọc. Biến %20, %26 và %C3%A9 thành ký tự bình thường ngay lập tức. URL decoder miễn phí.
- Mã hóa Base64: Mã hóa văn bản hoặc chuỗi bất kỳ sang Base64 ngay lập tức. Dùng cho data URI, header HTTP Basic auth, email và API. Base64 encoder online miễn phí.
Công cụ tương tự
Giải mã chuỗi Base64 về văn bản dễ đọc ngay lập tức. Xem header xác thực, token, payload API và nội dung email. Base64 decoder online miễn phí.
Kiểm tra và định dạng JSON online. Tìm lỗi cú pháp, biến JSON nén một dòng thành code thụt lề dễ đọc. JSON formatter miễn phí, không cần đăng ký.
Giải mã URL và query string bị percent-encoding về văn bản dễ đọc. Biến %20, %26 và %C3%A9 thành ký tự bình thường ngay lập tức. URL decoder miễn phí.
Công cụ miễn phí phổ biến
Tạo mật khẩu mạnh, ngẫu nhiên chỉ với một cú nhấp. Chọn độ dài, thêm chữ hoa, chữ thường, số và ký tự đặc biệt. Miễn phí, không cần đăng ký.
Chuyển văn bản sang CHỮ HOA, chữ thường, viết hoa đầu câu, Viết Hoa Mỗi Từ, camelCase, PascalCase, snake_case, CONSTANT_CASE, kebab-case. Miễn phí.
Lọc mọi địa chỉ email từ văn bản, HTML, log hoặc tài liệu chỉ với một cú bấm, nhận danh sách gọn kèm số lượng. Công cụ trích xuất email online miễn phí.
Tra cứu bản ghi DNS của tên miền bất kỳ: A, AAAA, CNAME, MX, NS, TXT và SOA. Kiểm tra cấu hình email, SPF, xác minh và nameserver miễn phí.
Đổi văn bản giữa các dấu phân cách: xuống dòng, khoảng trắng, chấm phẩy, gạch ngang, gạch đứng hoặc dấu chấm. Biến cột thành một dòng và ngược lại.
Tạo link chat WhatsApp với số điện thoại và tin nhắn điền sẵn. Gắn vào website, bio, quảng cáo hoặc mã QR. Công cụ tạo link wa.me miễn phí.