Tiêu đề giải mã
JSONSau khi dán JWT, nội dung được phân tích sẽ hiển thị ở đây.
Kiểm tra tiêu đề và tải trọng của Mã thông báo Web JSON. Công cụ này không xác thực chữ ký và quá trình xử lý vẫn diễn ra trong trình duyệt của bạn.
Dán JWT bên dưới để giải mã, kiểm tra và xác minh ngay lập tức.
Đang chờ mã thông báo Web JSON đầu vào.
Sau khi dán JWT, nội dung được phân tích sẽ hiển thị ở đây.
Sau khi dán JWT, nội dung được phân tích sẽ hiển thị ở đây.
Chữ ký sẽ được hiển thị ở đây sau khi giải mã.
Nhập bí mật để sử dụng khi phát hành JWT. Xác minh HS256 được thực hiện nguyên bản trong trình duyệt của bạn.
Chỉnh sửa JSON Tiêu đề và Tải trọng và sử dụng chữ ký HS256.
Chuẩn bị tạo JWT.
Bộ mã thông báo này phù hợp để thử nghiệm và gỡ lỗi phát triển cục bộ.
JWT là định dạng mã thông báo thường được sử dụng để đăng nhập, xác minh API và ủy quyền giữa các dịch vụ. Nó bao gồm ba phần: Tiêu đề, Tải trọng và Chữ ký.
Nội dung tải trọng có thể được giải mã và đọc, đồng thời không được đưa thông tin nhạy cảm vào khiếu nại JWT.
Trang này hỗ trợ xác minh và tạo chữ ký HS256, giúp dễ dàng kiểm tra xem mã thông báo môi trường thử nghiệm có được tạo bằng cùng một bí mật hay không.
Tất cả việc giải mã, mã hóa và xác minh chữ ký JWT đều được thực hiện nguyên bản trong trình duyệt.
CƠ SỞ KIẾN THỨC SEO JWT
Nếu bạn đang tìm kiếm "Bộ giải mã JWT", "Bộ giải mã JWT", "Phân tích mã thông báo web JSON", "Xác minh JWT" hoặc "Bộ mã hóa JWT", điều đó thường có nghĩa là bạn đã có mã thông báo và cần nhanh chóng hiểu Tiêu đề, Tải trọng, thời gian hết hạn, thuật toán ký và xác nhận quyền sở hữu của nó. Trang này không chỉ cung cấp các công cụ giải mã JWT trực tuyến mà còn tổ chức các kiến thức cơ bản về JWT mà các nhà phát triển thường xuyên thắc mắc.
JWT là tên viết tắt của JSON Web Token. Đó là định dạng mã thông báo sử dụng JSON để thể hiện thông tin và sau đó chuyển đổi nó thành một chuỗi đơn giản hóa. Nó thường được sử dụng trong các trang web phân tách front-end và back-end, API ứng dụng, đăng nhập thành viên, SSO đăng nhập một lần, ủy quyền microservice và trao đổi dữ liệu giữa các dịch vụ.
Giải mã JWT không yêu cầu mật khẩu vì Header và Payload chỉ được mã hóa Base64URL chứ không được mã hóa. Bất kỳ ai nhận được mã thông báo đều có thể sử dụng Bộ giải mã JWT để xem nội dung tải trọng, vì vậy các xác nhận quyền sở hữu không thể chứa mật khẩu, khóa API hoặc thông tin cá nhân nhạy cảm.
Trường hợp sử dụng phổ biến nhất là ủy quyền. Sau khi người dùng đăng nhập thành công, máy chủ ủy quyền sẽ cấp JWT. Khi giao diện người dùng hoặc ứng dụng sau đó gọi API, mã thông báo sẽ được đặt trong tiêu đề Cấp phép HTTP, chẳng hạn như Ủy quyền: Bearer .
JWT cũng thường được sử dụng để trao đổi thông tin. Khi hai hệ thống cần trao đổi dữ liệu có thể kiểm chứng, chữ ký cho phép đầu nhận xác nhận rằng dữ liệu không bị thay đổi trong quá trình truyền. Điểm cuối JWKS thường được sử dụng trong các hệ thống lớn để hiển thị khóa chung để các dịch vụ khác nhau có thể xác minh nguồn mã thông báo.
Một JWT tiêu chuẩn thường bao gồm ba chuỗi Base64URL được phân tách bằng dấu chấm: Header.Payload.Signature. Phần đầu tiên của Tiêu đề mô tả loại mã thông báo và thuật toán chữ ký, phần thứ hai của Tải trọng chứa các xác nhận quyền sở hữu và phần thứ ba của Chữ ký được sử dụng để xác minh tính toàn vẹn.
Các khiếu nại đã đăng ký phổ biến bao gồm iss, sub, aud, exp, nbf, data-i18n="auto.012">iat và jti. Việc xác thực API tốt thường sẽ kiểm tra ít nhất exp, iss và aud.
Quy trình điển hình là: người dùng đăng nhập, ủy quyền cho máy chủ xác minh mật khẩu tài khoản hoặc kết quả đăng nhập của bên thứ ba, sau đó cấp mã thông báo truy cập; giao diện người dùng đính kèm mã thông báo truy cập vào yêu cầu API; API phụ trợ xác minh mã thông báo và trả về dữ liệu được bảo vệ.
JWT không phải là sự thay thế phiên phổ quát. Khi mã thông báo được phát hành, nó thường có thể được xác minh mà không cần kiểm tra cơ sở dữ liệu trước khi hết hạn. Tuy nhiên, việc thu hồi mã thông báo, thay đổi quyền ngay lập tức và xử lý đăng xuất vẫn cần được thiết kế.
Xác thực JWT thường đề cập đến việc kiểm tra xem mã thông báo có đáp ứng các quy tắc dự kiến hay không, chẳng hạn như liệu nó có ba phân đoạn hay không, liệu nó có thể được giải mã hay không, liệu JSON có hợp pháp hay không, liệu nó đã hết hạn hay chưa, liệu nhà phát hành có chính xác hay không và liệu đối tượng có tuân thủ API hiện tại hay không.
Xác minh JWT sẽ sử dụng thuật toán và khóa được chỉ định để tính toán lại chữ ký, sau đó so sánh với chữ ký thứ ba của mã thông báo. Có thể hiểu được tải trọng không có nghĩa là mã thông báo đáng tin cậy; API chính thức phải trải qua quá trình xác minh con dấu và xác minh khiếu nại.
JWT Decode chuyển đổi đoạn đầu tiên và đoạn thứ hai của mã thông báo trở lại JSON, cho phép bạn đọc Tiêu đề và Tải trọng. Mã hóa JWT là quy trình ngược lại: chuẩn bị JSON tiêu đề và JSON tải trọng, tạo Chữ ký và cuối cùng kết hợp chúng thành một mã thông báo hoàn chỉnh.
Nếu bạn chỉ muốn xem nội dung tải trọng, bạn không cần bí mật; nếu bạn muốn xác nhận xem mã thông báo có thực sự do hệ thống của bạn phát hành hay không, bạn phải sử dụng đúng khóa bí mật hoặc khóa chung để xác minh Chữ ký. Hiện tại trang này hỗ trợ HS256.
Khi sử dụng giải mã JWT trực tuyến, bạn cũng nên kiểm tra xem ai đã phát hành mã thông báo, mã thông báo được cấp cho hệ thống nào, thời điểm có hiệu lực, thời điểm hết hạn và liệu phạm vi cấp phép có đáp ứng các yêu cầu API hay không. Bảng sau đây tóm tắt các khiếu nại JWT phổ biến.
| Yêu cầu | Ý nghĩa tiếng Trung | Những gì cần kiểm tra khi gỡ lỗi |
|---|---|---|
là | Người phát hành, người phát hành | Cho dù đó là máy chủ ủy quyền của bạn hay nhà cung cấp danh tính đáng tin cậy. |
phụ | Chủ đề, người dùng hoặc ID chính | Liệu nó có tương ứng với đúng người dùng, thành viên, tài khoản dịch vụ hoặc thiết bị hay không. |
kiểm toán | Khán giả, khán giả mã thông báo | Có gửi nó tới API hiện tại hay không; lỗi khán giả thường gây ra 401. |
điểm kinh nghiệm | Thời gian hết hạn, thời gian hết hạn | Cho dù nó đã hết hạn; lưu ý sự khác biệt trong hiển thị dấu thời gian và múi giờ Unix. |
nbf | Không phải trước đó, thời điểm có hiệu lực | Chưa hết thời gian sử dụng; độ lệch thời gian của máy chủ cũng sẽ ảnh hưởng đến nó. |
đó | Phát hành vào lúc, thời điểm phát hành | Nó có khớp với thời gian thực tế đăng nhập hoặc làm mới mã thông báo không. |
jti | ID JWT, ID duy nhất của mã thông báo | Liệu nó có thể được sử dụng cho danh sách thu hồi, nhật ký kiểm tra hoặc bảo vệ tấn công lặp lại hay không. |
phạm vi | Phạm vi thẩm quyền | Liệu các quyền đọc, viết, quản trị viên và các quyền khác mà API yêu cầu có tồn tại hay không. |
alg trong JWT Header sẽ cho người xác minh biết nên sử dụng thuật toán nào. HS256 là HMAC SHA-256, cả việc phát hành và xác minh đều sử dụng cùng một bộ bí mật; RS256 sử dụng chữ ký khóa riêng RSA và xác minh khóa chung; ES256 sử dụng thuật toán đường cong elip.
Phần phụ trợ cần chỉ định rõ ràng danh sách các thuật toán được phép để ngăn chặn kẻ tấn công ảnh hưởng đến quá trình xác minh bằng cách sửa đổi tiêu đề. Nếu JWT đến từ nhà cung cấp danh tính, thường lấy JWKS hoặc khóa chung và kiểm tra kid, iss, aud, exp.
Các vấn đề phổ biến nhất gặp phải khi sử dụng JWT Decoding là mã thông báo không ở định dạng ba đoạn tiêu chuẩn, chuỗi Base64URL được sao chép không đầy đủ, có khoảng trắng trước và sau, tải trọng không phải là JSON hợp pháp hoặc bí mật ký được sử dụng không chính xác. Nếu API trả về 401 hoặc 403, trước tiên bạn nên giải mã JWT và xác nhận exp, aud và scope.
header.payload.signature hay không.Bearer hay không.exp đã hết hạn hay chưa và thời gian của máy chủ có được đồng bộ hóa hay không.iss và aud có nhất quán với môi trường hiện tại hay không.kid hay không.Phiên thường lưu trạng thái trong máy chủ hoặc bộ lưu trữ tập trung và trình duyệt chỉ lưu id phiên; JWT đặt một phần trạng thái vào mã thông báo để API có thể sử dụng chữ ký để xác minh tính toàn vẹn. SAML dựa trên XML và thường được sử dụng trong SSO doanh nghiệp.
| kế hoạch | Phù hợp với hoàn cảnh | Những điều cần lưu ý |
|---|---|---|
| JWT | Ủy quyền API, mã thông báo truy cập SSO, microservice | Cần kiểm soát thời gian hết hạn, xác minh niêm phong, thu hồi và rò rỉ thông tin nhạy cảm. |
| Phiên | Các trang web truyền thống yêu cầu đăng xuất ngay lập tức hoặc kiểm soát trạng thái tập trung | Cần có kho lưu trữ phiên phía máy chủ và việc mở rộng dịch vụ chéo yêu cầu thiết kế bổ sung. |
| SAML | Tích hợp nhận dạng doanh nghiệp, hệ thống SSO kế thừa | Cấu trúc XML lớn hơn và chữ ký cũng như cài đặt thường phức tạp hơn. |
exp hợp lý và không đặt mã thông báo truy cập hợp lệ trong thời gian dài.alg của Tiêu đề.iss, aud, nbf, iat với các yêu cầu quyền cần thiết.Công cụ giải mã JWT trực tuyến này sử dụng quá trình xử lý gốc của trình duyệt: mã thông báo, bí mật, JSON tiêu đề và JSON tải trọng mà bạn dán sẽ không được tải lên máy chủ ToolBoy. Mặc dù vậy, vẫn phải tuân thủ nguyên tắc tiết lộ tối thiểu khi giao dịch với các token sản xuất thực.
JWT thường xuất hiện trong quá trình gỡ lỗi API cùng với JSON, Base64URL, truy vấn URL, dấu thời gian, SHA-256, UUID, biểu thức chính quy và các định dạng dữ liệu khác. Bạn có thể sử dụng công cụ định dạng JSON, Mã hóa và giải mã Base64, Chuyển đổi dấu thời gian Unix hoặc Trình tạo UUID.
Để đọc thêm, vui lòng tham khảo Giới thiệu về mã thông báo web JSON của jwt.io và RFC 7519. Nội dung của trang này đã được sắp xếp lại và viết lại bằng tiếng Trung, tập trung vào việc gỡ lỗi thực tế, SEO mũ trắng và quyền riêng tư gốc.