Công cụ lập trình
Trình gỡ lỗi trực tuyến Mã thông báo Web JSON

Giải mã JWT trực tuyến

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.

Đầu vào mã thông báo JWT

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.

Tiêu đề giải mã

JSON
Sau khi dán JWT, nội dung được phân tích sẽ hiển thị ở đây.

Giải mã tải trọng

Khiếu nại
Sau khi dán JWT, nội dung được phân tích sẽ hiển thị ở đây.

Xác minh chữ ký JWT

chọn
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.

JWT

Làm thế nào để sử dụng giải mã JWT trực tuyến?

  1. Dán mã thông báo JWT hoàn chỉnh.
  2. Nhấn "Giải mã JWT" để phân tích Tiêu đề, Tải trọng và Chữ ký.
  3. Khi cần xác nhận chữ ký, hãy nhập bí mật rồi sử dụng "Xác minh chữ ký".
JSON

Mã thông báo Web JSON là gì?

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.

HS

JWT Xác minh và bảo mật

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

Hướng dẫn đầy đủ về giải mã JWT trực tuyến: JSON Web Token là gì, cách xác minh và cách sử dụng an toàn

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à gì?

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.

Khi nào nên sử dụng JWT?

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.

Cấu trúc ba phần của JWT: Tiêu đề, Tải trọng, Chữ ký

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">iatjti. Việc xác thực API tốt thường sẽ kiểm tra ít nhất exp, issaud.

JWT hoạt động như thế nào trong quá trình đăng nhập và API?

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ế.

Sự khác biệt giữa Xác thực JWT và Xác minh JWT là gì?

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.

Sự khác biệt giữa Giải mã JWT và Mã hóa JWT là gì?

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.

So sánh các xác nhận quyền sở hữu của JWT: Tôi nên xem xét những trường nào sau khi giải mã?

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 TrungNhững gì cần kiểm tra khi gỡ lỗi
Người phát hành, người phát hànhCho 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ínhLiệ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ánKhán giả, khán giả mã thông báoCó 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ệmThời gian hết hạn, thời gian hết hạnCho 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.
nbfKhông phải trước đó, thời điểm có hiệu lựcChư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ànhNó 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.
jtiID JWT, ID duy nhất của mã thông báoLiệ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 viPhạm vi thẩm quyềnLiệ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.

Làm cách nào để chọn giữa HS256, RS256 và ES256?

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 lỗi JWT thường gặp và cách khắc phục

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, audscope.

Danh sách kiểm tra gỡ lỗi JWT
  • Mã thông báo có ở định dạng ba phân đoạn header.payload.signature hay không.
  • Tiêu đề Ủy quyền có sử dụng lược đồ 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.
  • Liệu issaud có nhất quán với môi trường hiện tại hay không.
  • Liệu bí mật HS256 có hoàn toàn phù hợp với đầu phát hành hay không.
  • Liệu RS256 / ES256 có sử dụng đúng khóa chung và kid hay không.
  • Liệu các yêu cầu về quyền có chứa phạm vi hoặc vai trò mà API yêu cầu hay không.

Sự khác biệt giữa JWT, Phiên và SAML là gì?

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ạchPhù hợp với hoàn cảnhNhững điều cần lưu ý
JWTỦy quyền API, mã thông báo truy cập SSO, microserviceCầ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ênCá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 trungCầ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.
SAMLTích hợp nhận dạng doanh nghiệp, hệ thống SSO kế thừaCấ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.

Lời khuyên bảo mật của JWT: SEO mũ trắng cũng nên ghi rõ những rủi ro

  • Không đặt mật khẩu, khóa riêng, khóa API, thông tin thanh toán hoặc thông tin cá nhân nhạy cảm trong Tiêu đề hoặc Tải trọng JWT.
  • Đặt 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.
  • Các thuật toán được phép phải được sửa trong quá trình xác minh phía sau và không được tin tưởng một cách mù quáng vào alg của Tiêu đề.
  • Sử dụng bí mật HS256 đủ dài và ngẫu nhiên; không sử dụng bí mật ví dụ trong môi trường sản xuất.
  • Kiểm tra iss, aud, nbf, iat với các yêu cầu quyền cần thiết.
  • Tránh nhồi nhét danh sách quyền quá lớn vào JWT để tránh làm tiêu đề quá lớn hoặc gây rò rỉ dữ liệu.
  • Mã thông báo lưu trữ mặt trước cần đánh giá XSS, CSRF, thuộc tính cookie và rủi ro lưu trữ trình duyệ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.ioRFC 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.

Câu hỏi thường gặp về giải mã JWT trực tuyến

Giải mã JWT trực tuyến có xác minh chữ ký không?
Giải mã Tiêu đề và Tải trọng không tương đương với việc xác minh chữ ký; để xác nhận xem mã thông báo có bị giả mạo hay không, vui lòng nhập cùng một bí mật và thực hiện Xác minh.
JWT Payload có thể chứa mật khẩu hoặc khóa không?
Không được khuyến khích. Nói chung, JWT chỉ được mã hóa Base64URL và bất kỳ ai nhận được mã thông báo đều có thể đọc tải trọng.
Bộ mã hóa JWT có phù hợp để phát hành mã thông báo chính thức không?
Công cụ này phù hợp để phát triển, thử nghiệm và gỡ lỗi. Môi trường chính thức phải có mã thông báo phát hành dịch vụ phụ trợ và quản lý đúng cách các bí mật hoặc khóa riêng tư.