Bộ giải mã JWT
Giải mã JSON Web Token (JWT) để xem phần tiêu đề (header) và các xác nhận nội dung (payload claims) mà không cần xác minh chữ ký. Trực quan hóa cấu trúc mã báo (token), phân tích các yêu cầu, kiểm tra thời gian hết hạn và gỡ lỗi các vấn đề xác thực một cách dễ dàng. Xử lý 100% tại máy khách để đảm bảo quyền riêng tư.
🚀 Thử các JWT ví dụ này:
Trình chặn quảng cáo đang ngăn chúng tôi hiển thị quảng cáo
MiniWebtool miễn phí nhờ quảng cáo. Nếu công cụ này hữu ích, hãy ủng hộ bằng Premium (không quảng cáo + nhanh hơn) hoặc cho phép MiniWebtool.com rồi tải lại trang.
- Hoặc nâng cấp Premium (không quảng cáo)
- Cho phép quảng cáo cho MiniWebtool.com, rồi tải lại
Giới thiệu về Bộ giải mã JWT
Chào mừng bạn đến với Bộ giải mã JWT, một công cụ trực tuyến mạnh mẽ dành cho các nhà phát triển để giải mã và kiểm tra JSON Web Tokens (JWT) ngay lập tức. Cho dù bạn đang gỡ lỗi các vấn đề về xác thực, xác minh các xác nhận mã thông báo hay tìm hiểu về cấu trúc JWT, công cụ này đều cung cấp hình ảnh trực quan rõ ràng, được mã hóa màu về tất cả các thành phần mã thông báo mà không gửi bất kỳ dữ liệu nào đến máy chủ bên ngoài.
JSON Web Token (JWT) là gì?
JSON Web Token (JWT, phát âm là "jot") là một tiêu chuẩn mở (RFC 7519) xác định một phương pháp nhỏ gọn, khép kín để truyền tin an toàn giữa các bên dưới dạng đối tượng JSON. JWT được sử dụng rộng rãi cho:
- Xác thực: Sau khi người dùng đăng nhập, mỗi yêu cầu tiếp theo sẽ bao gồm JWT, cho phép truy cập vào các tuyến đường, dịch vụ và tài nguyên được phép với mã thông báo đó.
- Trao đổi thông tin: JWT có thể truyền tin an toàn giữa các bên vì chúng có thể được ký bằng khóa bí mật (HMAC) hoặc cặp khóa công khai/bí mật (RSA, ECDSA).
- Phân quyền: Máy chủ có thể xác minh các xác nhận mã thông báo để xác định quyền của người dùng mà không cần truy vấn cơ sở dữ liệu cho mỗi yêu cầu.
Giải thích cấu trúc JWT
Một JWT bao gồm ba phần được ngăn cách bởi dấu chấm (.):
1. Tiêu đề - Header (Màu đỏ)
Tiêu đề thường chứa hai mẩu thông tin:
alg: Thuật toán ký được sử dụng (ví dụ: HS256, RS256, ES256)typ: Loại mã thông báo, luôn là "JWT"
2. Nội dung - Payload (Màu tím)
Nội dung chứa các xác nhận (claims) - các tuyên bố về người dùng và siêu dữ liệu bổ sung. Có ba loại xác nhận:
- Xác nhận đã đăng ký (Registered claims): Các xác nhận được xác định trước như
iss(người phát hành),exp(thời gian hết hạn),sub(chủ thể),aud(đối tượng nhận) - Xác nhận công khai (Public claims): Các xác nhận tùy chỉnh được đăng ký trong IANA JSON Web Token Registry hoặc được xác định là URI
- Xác nhận riêng tư (Private claims): Các xác nhận tùy chỉnh được thỏa thuận giữa các bên (ví dụ:
user_id,role)
3. Chữ ký - Signature (Màu xanh dương)
Chữ ký được tạo bằng cách kết hợp tiêu đề đã mã hóa, nội dung đã mã hóa, một khóa bí mật và thuật toán được chỉ định trong tiêu đề. Nó đảm bảo mã thông báo không bị giả mạo.
Tham chiếu các xác nhận JWT phổ biến
| Xác nhận | Tên | Mô tả |
|---|---|---|
iss |
Người phát hành (Issuer) | Xác định ai đã phát hành JWT (ví dụ: URL máy chủ xác thực của bạn) |
sub |
Chủ thể (Subject) | Xác định chủ thể của JWT (thường là ID người dùng hoặc email) |
aud |
Đối tượng nhận (Audience) | Xác định những người nhận mà JWT hướng tới |
exp |
Thời gian hết hạn | Dấu thời gian Unix mà sau đó JWT không còn giá trị |
nbf |
Không trước (Not Before) | Dấu thời gian Unix mà trước đó JWT không có giá trị |
iat |
Phát hành lúc (Issued At) | Dấu thời gian Unix khi JWT được phát hành |
jti |
ID của JWT | Mã định danh duy nhất cho JWT (hữu ích để ngăn chặn các cuộc tấn công phát lại) |
Thuật toán ký JWT
Thuật toán đối xứng (HMAC)
HS256: HMAC sử dụng SHA-256 - Cùng một khóa bí mật để ký và xác minhHS384: HMAC sử dụng SHA-384HS512: HMAC sử dụng SHA-512
Thuật toán bất đối xứng (RSA/ECDSA)
RS256: Chữ ký RSA với SHA-256 - Khóa bí mật để ký, khóa công khai để xác minhRS384: Chữ ký RSA với SHA-384RS512: Chữ ký RSA với SHA-512ES256: ECDSA sử dụng đường cong P-256 và SHA-256ES384: ECDSA sử dụng đường cong P-384 và SHA-384ES512: ECDSA sử dụng đường cong P-521 và SHA-512
Cân nhắc về bảo mật
Giải mã so với Xác minh
Quan trọng: Công cụ này giải mã JWT nhưng không xác minh chúng. Giải mã chỉ đơn giản là tiết lộ nội dung được mã hóa Base64URL, trong khi xác minh yêu cầu khóa bí mật để xác thực chữ ký. Đừng bao giờ tin tưởng dữ liệu đã giải mã mà không có xác minh chữ ký phía máy chủ.
Thực hành tốt nhất
- Luôn xác minh chữ ký phía máy chủ trước khi tin tưởng vào bất kỳ xác nhận nào
- Sử dụng thời gian hết hạn ngắn (
exp) - thường từ 15 phút đến 1 giờ cho các mã thông báo truy cập - Không lưu trữ dữ liệu nhạy cảm trong nội dung (payload) - nó được mã hóa, không phải được mã hóa bí mật
- Sử dụng HTTPS để ngăn chặn việc đánh chặn mã thông báo trong quá trình truyền tải
- Xác thực xác nhận đối tượng nhận (
aud) để ngăn chặn việc lạm dụng mã thông báo - Sử dụng thuật toán bất đối xứng (RS256, ES256) cho các hệ thống phân tán nơi nhiều dịch vụ cần xác minh mã thông báo
Quyền riêng tư & Bảo mật
Bộ giải mã JWT này hoạt động hoàn toàn trong trình duyệt của bạn:
- Không truyền tải máy chủ: JWT của bạn không bao giờ được gửi đến bất kỳ máy chủ nào
- Xử lý phía máy khách: Tất cả quá trình giải mã diễn ra trong JavaScript trong trình duyệt của bạn
- Không lưu trữ dữ liệu: Chúng tôi không lưu trữ, ghi nhật ký hoặc theo dõi mã thông báo của bạn
- Logic mã nguồn mở: Bạn có thể kiểm tra logic giải mã trong công cụ dành cho nhà phát triển của trình duyệt
Câu hỏi thường gặp
JWT (JSON Web Token) là gì?
JSON Web Token (JWT) là một tiêu chuẩn mở (RFC 7519) để truyền tin an toàn giữa các bên dưới dạng đối tượng JSON. JWT thường được sử dụng để xác thực và phân quyền trong các ứng dụng web. Một JWT bao gồm ba phần: Tiêu đề (thuật toán và loại mã thông báo), Nội dung (xác nhận/dữ liệu) và Chữ ký (xác minh).
Giải mã JWT trong trình duyệt có an toàn không?
Có, việc giải mã JWT trong trình duyệt là an toàn vì tiêu đề và nội dung chỉ được mã hóa Base64URL, không phải được mã hóa bí mật. Tuy nhiên, hãy nhớ rằng việc giải mã KHÔNG xác minh chữ ký của mã thông báo. Đừng bao giờ tin tưởng dữ liệu đã giải mã mà không có xác minh chữ ký phía máy chủ thích hợp. Công cụ này giải mã các mã thông báo hoàn toàn trong trình duyệt của bạn - không có dữ liệu nào được gửi đến bất kỳ máy chủ nào.
Các phần khác nhau của JWT có ý nghĩa gì?
Một JWT có ba phần được ngăn cách bởi dấu chấm: 1) Tiêu đề - Chứa thuật toán (alg) và loại mã thông báo (typ), thường là HS256 hoặc RS256 để ký. 2) Nội dung - Chứa các xác nhận, là các tuyên bố về người dùng và dữ liệu bổ sung như thời gian hết hạn (exp), thời điểm phát hành (iat), chủ thể (sub), v.v. 3) Chữ ký - Được tạo bằng cách ký tiêu đề và nội dung với một khóa bí mật, được sử dụng để xác minh rằng mã thông báo không bị giả mạo.
Tại sao tôi không thể xác minh chữ ký bằng công cụ này?
Xác minh chữ ký yêu cầu khóa bí mật (đối với các thuật toán đối xứng như HS256) hoặc khóa công khai (đối với các thuật toán bất đối xứng như RS256). Vì công cụ này chạy hoàn toàn trong trình duyệt của bạn để đảm bảo quyền riêng tư, nó không thể truy cập các khóa bí mật trên máy chủ của bạn. Để xác minh chữ ký, hãy sử dụng các thư viện phía máy chủ như jsonwebtoken (Node.js), PyJWT (Python) hoặc jwt-go (Go).
Các xác nhận (claims) JWT phổ biến là gì?
Các xác nhận đã đăng ký phổ biến bao gồm: iss (người phát hành), sub (chủ thể), aud (đối tượng nhận), exp (thời gian hết hạn), nbf (không trước), iat (phát hành lúc) và jti (ID của JWT). Các xác nhận tùy chỉnh có thể bao gồm user_id, email, vai trò, quyền hoặc bất kỳ dữ liệu cụ thể nào của ứng dụng. Các xác nhận dựa trên thời gian (exp, nbf, iat) là dấu thời gian Unix.
Tài nguyên bổ sung
Tham khảo nội dung, trang hoặc công cụ này như sau:
"Bộ giải mã JWT" tại https://MiniWebtool.com/vi// từ MiniWebtool, https://MiniWebtool.com/
bởi đội ngũ miniwebtool. Cập nhật: 03/02/2026