Trình Tạo JWT
Tạo JSON Web Tokens (JWT) đã ký với header tùy chỉnh, payload claims và thuật toán ký HMAC (HS256/HS384/HS512). Bao gồm các cài đặt trước claim nhanh, trình hỗ trợ hết hạn, xem trước token trực tiếp và bảng phân tích trực quan ba phân đoạn của JWT.
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ề Trình Tạo JWT
Chào mừng bạn đến với Trình tạo JWT, một công cụ trực tuyến nhanh chóng và miễn phí để tạo JSON Web Token đã ký. Cho dù bạn đang thử nghiệm quy trình xác thực, xây dựng API, gỡ lỗi tích hợp hay tìm hiểu cách JWT hoạt động bên dưới, trình tạo này cung cấp cho bạn toàn quyền kiểm soát đối với header của mã thông báo, các claim của payload và thuật toán ký HMAC. Tạo mã thông báo HS256, HS384 hoặc HS512 hợp lệ chỉ trong một lần nhấp và kiểm tra từng phân đoạn cạnh nhau.
JSON Web Token là gì?
JSON Web Token (JWT) là một định dạng thông tin xác thực nhỏ gọn, an toàn cho URL được xác định bởi RFC 7519. Một JWT mang các claim về một đối tượng giữa hai bên và chứng minh tính toàn vẹn của nó thông qua chữ ký mật mã. Vì mã thông báo độc lập, bên nhận có thể xác thực nó mà không cần gọi lại cho bên phát hành — một đặc tính làm cho JWT trở thành xương sống của xác thực stateless cho các ứng dụng web và di động hiện đại.
Mỗi JWT được xây dựng từ ba phần được mã hóa base64url nối với nhau bằng dấu chấm:
- Header — một đối tượng JSON khai báo loại mã thông báo (
typ) và thuật toán ký (alg). - Payload — một đối tượng JSON chứa các claim, chẳng hạn như id người dùng, thời gian hết hạn và bất kỳ dữ liệu tùy chỉnh nào.
- Signature — một chữ ký HMAC hoặc RSA trên header và payload đã được mã hóa để bảo vệ chúng khỏi bị giả mạo.
base64url(header).base64url(payload).base64url(signature)Ví dụ:
eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0In0.dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk
Cách thức hoạt động của Trình tạo JWT
Công cụ này tuân theo chính xác công thức ký JWT từ RFC 7519 §7.1:
- Tuần tự hóa JSON header sang dạng nhỏ gọn (không có khoảng trắng) và mã hóa base64url.
- Làm tương tự cho JSON payload.
- Nối cả hai với dấu chấm phân cách. Đây là đầu vào ký.
- Tính toán HMAC của đầu vào ký bằng secret của bạn và thuật toán SHA-2 đã chọn.
- Mã hóa base64url các byte chữ ký thu được.
- Nối mọi thứ dưới dạng
header.payload.signature.
Điều gì làm cho trình tạo này khác biệt
- Trực quan hóa màu sắc ba phân đoạn — header (hồng), payload (tím), chữ ký (xanh lơ) để bạn có thể phát hiện từng phần ngay lập tức.
- Bảng màu Claim nhanh — chèn
iss,sub,aud,iat,nbfvàjtichỉ với một cú nhấp chuột. - Hỗ trợ hết hạn — các nút cài sẵn cho 1 giờ, 1 ngày, 7 ngày hoặc 30 ngày để tự động tính toán dấu thời gian Unix chính xác.
- Xem trước mã thông báo trực tiếp — header và payload được mã hóa sẽ cập nhật khi bạn nhập để bạn có thể thấy từng thay đổi ảnh hưởng đến mã thông báo như thế nào.
- Đồng bộ hóa header thông minh — chuyển đổi thuật toán sẽ tự động cập nhật trường
algcủa header. - Nút bật tắt secret Base64 — nếu secret của bạn được lưu trữ dưới dạng base64 (quy ước JWS cho khóa nhị phân), hãy bật tùy chọn này và công cụ sẽ giải mã nó trước khi ký.
- Các nút sao chép theo từng phân đoạn — sao chép header, payload, chữ ký hoặc toàn bộ mã thông báo một cách độc lập.
- Tóm tắt claim — các claim tiêu chuẩn được công nhận được liệt kê với mô tả và dấu thời gian dễ đọc cho con người khi có thể áp dụng.
Chọn đúng thuật toán
Ba biến thể HMAC mà công cụ này hỗ trợ về mặt chức năng là giống hệt nhau ngoại trừ hàm hash SHA-2 và độ dài chữ ký bên dưới:
- HS256 — HMAC với SHA-256. Chữ ký 256 bit. Mặc định cho hầu hết mọi thư viện phát hành JWT và là lựa chọn có khả năng tương tác rộng rãi nhất.
- HS384 — HMAC với SHA-384. Chữ ký 384 bit. Biên độ bảo mật lớn hơn một chút trước các phân tích mật mã trong tương lai.
- HS512 — HMAC với SHA-512. Chữ ký 512 bit. Hữu ích khi chính sách yêu cầu hàm hash tiêu chuẩn dài nhất.
Cả ba đều dựa trên một secret dùng chung mà cả bên ký và bên xác minh đều giữ. RFC 7518 §3.2 yêu cầu khóa phải dài ít nhất bằng đầu ra hash: 256 bit cho HS256, 384 bit cho HS384, 512 bit cho HS512.
Các claim đã đăng ký tiêu chuẩn
RFC 7519 §4.1 xác định một bộ nhỏ các claim tiêu chuẩn mà bên phát hành và bên xác minh JWT nên công nhận. Tất cả đều tùy chọn nhưng được hỗ trợ rộng rãi:
iss(người phát hành) — xác định ai đã tạo mã thông báo. Thường là một URL hoặc tên dịch vụ.sub(chủ đề) — xác định mã thông báo nói về ai, thường là id người dùng.aud(đối tượng) — xác định người nhận mã thông báo hướng tới. Có thể là một chuỗi đơn hoặc một mảng.exp(thời gian hết hạn) — Dấu thời gian Unix sau thời điểm đó mã thông báo phải bị từ chối.nbf(không trước) — Dấu thời gian Unix trước thời điểm đó mã thông báo không được chấp nhận.iat(phát hành tại) — Dấu thời gian Unix ghi lại thời điểm mã thông báo được tạo.jti(JWT ID) — một mã định danh duy nhất cho phép thu hồi hoặc theo dõi các mã thông báo riêng lẻ.
Cách sử dụng công cụ này
- Chọn thuật toán ký — nhấp vào HS256, HS384 hoặc HS512. Header được cập nhật tự động để khớp.
- Chỉnh sửa header (tùy chọn) — header mặc định chứa
algvàtyp. Thêmkid(id khóa) tùy chỉnh nếu trình xác minh của bạn cần. - Xây dựng payload — nhập các claim của bạn dưới dạng JSON hoặc nhấp vào các nút Claim nhanh để chèn các trường tiêu chuẩn. Trình hỗ trợ hết hạn sẽ ghi dấu thời gian Unix chính xác cho thời gian tương đối bạn chọn.
- Đặt secret — nhập secret HMAC dùng chung của bạn. Bật biểu tượng con mắt để hiển thị nó. Nếu secret của bạn được mã hóa base64, hãy bật hộp kiểm để công cụ giải mã nó trước khi ký.
- Tạo JWT — nhấp vào Tạo JWT. Toàn bộ mã thông báo, ba thẻ phân đoạn, sơ đồ cấu trúc và tóm tắt claim được công nhận sẽ được hiển thị cùng nhau.
- Sao chép những gì bạn cần — sử dụng các nút Sao chép theo từng phân đoạn hoặc nút Sao chép mã thông báo để lấy giá trị đã mã hóa vào Postman, curl hoặc ứng dụng khách của bạn.
Các trường hợp sử dụng phổ biến
Xác thực và ủy quyền
- Phát hành mã thông báo truy cập sau khi đăng nhập thành công.
- Mã hóa nhận dạng người dùng (
sub) cộng với các claim về vai trò hoặc quyền hạn. - Ký các mã thông báo có thời gian tồn tại ngắn (15–60 phút) và làm mới chúng khi cần thiết.
Kiểm thử tích hợp API
- Xây dựng các mã thông báo mô phỏng để kiểm tra cách API của bạn phản hồi với các claim đã hết hạn, ngày trong tương lai hoặc sai định dạng.
- Tạo JWT làm dữ liệu mẫu (fixture) cho các bài kiểm tra đơn vị (unit test) và quy trình CI.
- Tái tạo các mã thông báo giống production trong môi trường cục bộ mà không cần truy cập máy chủ xác thực thực tế.
Gỡ lỗi đăng nhập một lần (SSO)
- So sánh một JWT đã biết là tốt với một JWT mà nhà cung cấp của bạn đang gửi để tìm sự sai lệch so với đặc tả.
- Kiểm tra thuật toán ký và id khóa (
kid) được sử dụng bởi một bên phát hành thượng nguồn.
Câu hỏi thường gặp
JWT được tạo ở đây có phải là mã thông báo thực sự, hợp lệ không?
Có. Mã thông báo được ký bằng HMAC trên header và payload đã được mã hóa chuẩn hóa. Bất kỳ thư viện JWT nào sử dụng cùng một secret của bạn sẽ xác thực nó thành công.
Tại sao mã thông báo của tôi trông giống hệt với mã thông báo tôi tạo ở nơi khác?
Bởi vì JWT có tính xác định: với cùng một header, payload và secret, mọi thư viện tuân thủ đều tạo ra chuỗi văn bản giống hệt nhau. Nếu bạn thấy sự khác biệt, hãy kiểm tra xem thứ tự tuần tự hóa JSON, cách viết khóa và mã hóa secret có khớp hay không.
Tôi có thể giải mã JWT để xác minh những gì tôi đã tạo không?
Có. Kết hợp công cụ này với một trình giải mã JWT để kiểm tra các phân đoạn. Việc giải mã chỉ đảo ngược bước base64url — việc xác minh chữ ký vẫn yêu cầu secret.
Tại sao secret của tôi bị từ chối vì quá ngắn?
RFC 7518 khuyến nghị một khóa có độ dài ít nhất bằng đầu ra của hàm hash: 256 bit cho HS256. Bản thân công cụ không bắt buộc độ dài tối thiểu, nhưng một trình xác minh hoạt động tốt có thể từ chối các khóa ngắn. Hãy sử dụng secret 32+ byte được tạo ngẫu nhiên trong thực tế.
Công cụ này có hỗ trợ RS256, ES256 hoặc EdDSA không?
Chưa — công cụ này tập trung vào các thuật toán dựa trên HMAC vì chúng chỉ cần một chuỗi dùng chung. Các thuật toán không đối xứng (RS*, PS*, ES*, EdDSA) yêu cầu các cặp khóa và xử lý PEM phù hợp hơn với các công cụ chuyên dụng.
Secret và payload của tôi có được gửi lên máy chủ không?
Biểu mẫu được gửi qua HTTPS để tính toán chữ ký. Không có gì được ghi nhật ký hoặc lưu trữ quá thời gian tồn tại của yêu cầu. Tuy nhiên, đừng nhập các secret production tại đây — hãy coi đó là một môi trường thử nghiệm công khai.
Tài liệu tham khảo bổ sung
Tham khảo nội dung, trang hoặc công cụ này như sau:
"Trình Tạo JWT" tại https://MiniWebtool.com/vi// từ MiniWebtool, https://MiniWebtool.com/
bởi đội ngũ miniwebtool. Cập nhật: 26 tháng 4, 2026