Bỏ qua tới nội dung
Toolbench

Giải mã JWT

Đọc header, claim và hạn dùng của một JSON Web Token — không gửi đi đâu cả.

Chạy hoàn toàn trong trình duyệt của bạn

Đang tải công cụ...

Cách sử dụng

  1. Dán một JSON Web Token. Có sẵn tiền tố "Bearer " cũng được — công cụ sẽ tự bỏ.
  2. Đọc header, các claim chuẩn và mọi claim khác mà token mang theo.
  3. Kiểm tra hạn dùng, hiển thị cả dạng ngày giờ lẫn dạng tương đối.
  4. Chú ý phần cảnh báo: token hết hạn, thiếu hạn dùng hay alg none đều thay đổi cách bạn nên xử lý token đó.

Tính năng

  • Header, claim chuẩn và claim tùy chỉnh được tách riêng thay vì đổ chung một khối.
  • Hạn dùng, thời điểm bắt đầu hiệu lực và thời điểm phát hành được đổi từ giây sang ngày giờ dễ đọc.
  • Cảnh báo token hết hạn, thiếu hạn dùng, alg none và token sống quá một tháng.
  • Chính xác với claim ngoài ASCII — tên có dấu được giải mã theo UTF-8, không phải theo byte.
  • Không gửi đi và không lưu lại: token còn hạn là thông tin đăng nhập đang dùng được.

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

Công cụ có xác minh token không?
Không, và không công cụ chạy trên trình duyệt nào làm được điều đó một cách trung thực. Xác minh nghĩa là tính lại chữ ký bằng khóa bí mật, mà khóa đó thuộc về máy chủ của bạn — dán nó vào một trang web tức là trao nó đi. Công cụ này chỉ giải mã, việc không cần khóa nào cả, và nói rõ điều đó thay vì ngụ ý đã kiểm tra.
Ai cũng đọc được thì JWT có được mã hóa không?
Không. Phần payload chỉ được mã hóa base64url — đó là phép mã hóa ký tự, không phải mã hóa bảo mật; ai cầm token đều đọc được mọi claim. Chữ ký chứng minh nội dung không bị sửa, chứ không che giấu nội dung. Đừng bao giờ đặt vào JWT thứ bạn không dám viết lên một tấm bưu thiếp.
Dán token thật vào đây có an toàn không?
Ở đây thì có: việc giải mã diễn ra trong trang và token không được gửi đi hay lưu lại. Nhưng nói chung hãy cẩn thận — token chưa hết hạn là một thông tin đăng nhập đang dùng được, và phần lớn công cụ giải mã trực tuyến đều gửi nó lên máy chủ. Khi có thể, hãy dùng token đã hết hạn.
alg: none nghĩa là gì?
Nghĩa là token không được ký và không khẳng định ai đã phát hành nó. Chuẩn có ghi nhận trường hợp này khi tính toàn vẹn đã được bảo đảm bằng cách khác, và nó từng là cơ sở của những lỗ hổng vượt xác thực có thật, khi máy chủ tin vào chính lời khai của header về thuật toán. Nếu bạn thấy nó trên một token đáng ra phải tin cậy được, đó là một phát hiện.

Ký một token để thử, hoặc kiểm tra xem token có thật sự được ký bằng khóa của bạn hay không.

Chuyển văn bản sang Base64 và ngược lại.

Tạo mã băm MD5, SHA-1, SHA-256, SHA-384 và SHA-512, hoặc đối chiếu một checksum.

Định dạng và làm đẹp JSON ngay lập tức.

Giải mã JWT — Đọc claim và hạn dùng an toàn