Ký & kiểm tra JWT
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.
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
- Để ký: sửa payload, nhập khóa bí mật, rồi sao chép token.
- Để kiểm tra: dán token cùng khóa bí mật lẽ ra đã dùng để ký.
- Xem cả chữ ký lẫn hạn dùng — chữ ký hợp lệ trên token hết hạn thì vẫn là hết hạn.
- Token tạo ở đây dùng để thử nghiệm, không dùng cho phiên đăng nhập thật.
Tính năng
- Hỗ trợ HS256, HS384 và HS512, đối chiếu với ví dụ công bố trong đặc tả.
- Kết quả kiểm tra tách riêng chữ ký và hạn dùng.
- Từ chối `alg: none` thay vì chấp nhận token không có chữ ký.
- Mã base64url đúng chuẩn — bảng ký tự an toàn cho URL, không dấu đệm.
- Chạy hoàn toàn trong trình duyệt.
Câu hỏi thường gặp
- Vì sao công cụ giải mã không kiểm tra chữ ký mà trang này lại có?
- Vì kiểm tra chữ ký cần khóa bí mật, và việc hỏi khóa làm thay đổi bản chất của trang. Công cụ giải mã đọc một token mà ai cũng đọc được và nói thẳng là nó chưa kiểm tra gì. Trang này hỏi khóa, kiểm tra đàng hoàng, và nói rõ cái giá phải trả — đó mới là cách trung thực.
- Vì sao `alg: none` bị từ chối?
- Vì đó là kiểu tấn công JWT lâu đời nhất: bỏ chữ ký đi, đặt thuật toán thành `none`, và thư viện nào tin vào phần header sẽ chấp nhận một token không chữ ký là hợp lệ. Bên kiểm tra phải tự quyết định mình chờ thuật toán nào, chứ không đọc từ token. Ở đây chỉ chấp nhận HS256, HS384 và HS512.
- Chữ ký của tôi không khớp, vì sao?
- Thường là do khoảng trắng hoặc cách mã hóa. Chữ ký ký lên đúng phần header và payload đã mã hóa, nên một payload được tạo lại với thứ tự khóa hay khoảng trắng khác sẽ ra token khác — dù nội dung JSON vẫn mang cùng ý nghĩa. Hãy kiểm tra đúng token bạn nhận được, từng byte một, thay vì token bạn dựng lại.
Công cụ liên quan
Đọc header, claim và hạn dùng của một JSON Web Token — không gửi đi đâu cả.
Ký một thông điệp bằng khóa bí mật, hoặc kiểm tra chữ ký webhook mà bạn nhận được.
Chuyển văn bản sang Base64 và ngược lại.