Cách dùng Tạo JWT
- Chọn thuật toán ký: HS256 nếu dùng secret dùng chung, RS256 hoặc ES256 nếu dùng khóa riêng.
- Chỉnh payload dạng JSON và thêm claim như
iatvàexpbằng các nút bấm. - Nhập secret, hoặc dán khóa riêng PKCS#8 nếu dùng thuật toán RS/PS/ES.
- Sao chép token đã mã hóa, hoặc mở trong công cụ giải mã để kiểm tra.
Cấu trúc của một JWT
JSON Web Token (RFC 7519) gồm ba phần Base64url được ngăn cách bởi dấu chấm: header.payload.signature. Chữ ký được tính trên hai phần đầu, nên chỉ cần thay đổi header hoặc claim là chữ ký sẽ không còn hợp lệ. Payload chỉ được mã hóa theo chuẩn Base64, không được mã hóa bảo mật — ai cũng có thể đọc, vì vậy đừng bao giờ đặt thông tin nhạy cảm vào JWT.
Chọn thuật toán
| Thuật toán | Khóa | Nên dùng khi |
|---|---|---|
| HS256 / HS384 / HS512 | Secret dùng chung (HMAC) | Một dịch vụ vừa phát hành vừa xác minh token |
| RS256 / RS384 / RS512 | Khóa riêng RSA, khóa công khai để xác minh | Nhiều dịch vụ cùng xác minh; được thư viện hỗ trợ rộng nhất (OAuth, OpenID Connect) |
| PS256 | RSA với đệm PSS | Tương tự RS256 nhưng dùng cơ chế đệm hiện đại hơn |
| ES256 / ES384 | Khóa riêng EC (P-256 / P-384) | Chữ ký và khóa ngắn gọn; Apple và nhiều API hiện đại sử dụng |
Claim đã đăng ký
issbên phát hành,subchủ thể (ID người dùng),audđối tượng nhậniatthời điểm phát hành,nbfkhông hợp lệ trước thời điểm này,expthời điểm hết hạn — tất cả tính bằng giây kể từ 1970 (Unix time; xem công cụ chuyển đổi timestamp)jtiID duy nhất của token, hữu ích cho danh sách thu hồi
Secret và khóa
RFC 7518 yêu cầu khóa HMAC có độ dài ít nhất bằng độ dài hàm băm: 32 byte ngẫu nhiên cho HS256. Secret ngắn, dễ đọc có thể bị bẻ khóa ngoại tuyến chỉ từ một token. Khóa riêng phải ở định dạng PKCS#8 PEM (BEGIN PRIVATE KEY); nếu là định dạng cũ, hãy chuyển bằng openssl pkcs8 -topk8 -nocrypt. Để kiểm tra token có sẵn, hãy dùng JWT decoder.
Cũng được tìm dưới tên: jwt generator, tạo jwt token, ký jwt online, jwt encoder online, mã hóa jwt, tạo jwt rs256, jwt builder.
Các công cụ dùng kèm tốt với Tạo JWT
- Công cụ tạo khóa RSA — Tạo cặp khóa công khai/riêng tư để ký JWT, kiểm thử TLS, thử nghiệm mã hóa hoặc dùng cho SSH.
- Tạo HMAC Online — Tính chữ ký HMAC có khóa cho các yêu cầu API và webhook, rồi kiểm tra xem chữ ký nhận được có hợp lệ hay không.
- Mã hóa / Giải mã Base64 — Chuyển văn bản sang Base64 và ngược lại với hỗ trợ đầy đủ UTF-8 (dấu tiếng Việt, emoji), chuyển sang Base64 an toàn cho URL, hoặc thả tệp vào để lấy chuỗi Base64 hay data URI.
- Tạo mã Hash — Tính mã hash MD5 và SHA cho mọi văn bản hoặc file ngay lập tức, tạo chữ ký HMAC và dán checksum mong đợi để kiểm tra file tải về.
Câu hỏi thường gặp
Tạo JWT ở đây có an toàn không?
Tại sao RS256 từ chối khóa riêng của tôi?
openssl pkcs8 -topk8 -nocrypt -in key.pem.