Bộ tạo JWT
Hãy tạo và ký một token JWT ngay trong trình duyệt của bạn. Nhập các yêu cầu đối với dữ liệu tải (các giá trị tiêu chuẩn như sub, aud, exp… cùng bất kỳ thông tin tùy chỉnh nào), chọn thuật toán (HS256 sử dụng mật khẩu chung hoặc RS256/ES256 sử dụng khóa riêng), và công cụ sẽ tự động tạo ra token gồm ba phần. Phương pháp này rất hữu ích cho phát triển cục bộ, kiểm thử tải và tái tạo các vấn đề liên quan đến xác thực.
Cách tạo JWT
-
1
Nhập dữ liệu tải trọng (payload)
Các yêu cầu tiêu chuẩn (`sub`, `iss`, `aud`, `exp`, `iat`, `nbf`) cùng với bất kỳ yêu cầu tùy chỉnh nào ứng dụng của bạn cần thiết.
-
2
Chọn thuật toán
HS256/384/512 với mật khẩu chung, hoặc RS256/ES256 với khóa riêng ở định dạng PEM.
-
3
Cung cấp khóa
Đặt văn bản bí mật chung cho HMAC hoặc dán khóa riêng tư cho RSA/ECDSA; cả hai đều được lưu trong trình duyệt của bạn.
-
4
Tạo ra
Kết quả là token có dấu. Hãy sao chép nó, sử dụng trong các bài kiểm thử và giải mã bằng công cụ JWT Decoder để kiểm tra.
Lượng dữ liệu tiêu chuẩn dành cho token người dùng đã được xác thực
{
"iss": "https://auth.example.com",
"aud": "api.example.com",
"sub": "user_12345",
"iat": 1713398400,
"nbf": 1713398400,
"exp": 1713402000,
"jti": "3c7c7e14-2de4-41f0-bf09-1eb5cfad4c01",
"scope": "read:profile write:posts"
}
Lựa chọn thuật toán: HMAC so với thuật toán không đối xứng
| Algoritma | Loại khóa | Áp dụng khi |
|---|---|---|
| HS256 | Mật chia sẻ 256 bit | Một khối thống nhất có khả năng tự ký và tự xác thực |
| HS384/512 | Mật mã dài hơn | Tương tự như HS256, mạnh hơn |
| RS256 | RSA 2048+ | Người phát hành ký; nhiều dịch vụ xác minh bằng khóa công cộng |
| ES256 | ECDSA P-256 | Tương tự như RS256 nhưng chữ ký có kích thước nhỏ hơn |
| EdDSA | Ed25519 | Phương pháp xác minh bất đối xứng nhanh nhất, sử dụng khóa nhỏ nhất |
Độ mạnh của khóa
- Bí mật HMAC phải có độ entropy ít nhất bằng kích thước đầu ra của thuật toán. HS256 yêu cầu 256 bit ngẫu nhiên (32 byte); nếu ít hơn thì có thể bị bẻ khóa bằng phương pháp brute-force.
- Khóa RSA phải có độ dài tối thiểu là 2048 bit; đối với các token có thời gian sử dụng lâu dài, nên dùng độ dài 3072 hoặc 4096 bit.
- ECDSA (ES256) cung cấp mức độ bảo mật tương đương với RSA 3072 nhưng sử dụng khóa nhỏ hơn nhiều và quá trình ký nhanh hơn đáng kể.
Hướng dẫn về thời hạn sử dụng
| Loại token | Thời gian sử dụng điển hình của exp |
|---|---|
| Token truy cập | 5–60 phút |
| Token cập nhật | Từ ngày đến tuần |
| Khôi phục mật khẩu | 5–15 phút |
| Xác thực email | 24 giờ |
| Từ dịch vụ này đến dịch vụ khác | 1–5 phút (thời gian ngắn) |
Token có thời hạn ngắn kèm chức năng tự động làm mới là mô hình hiện đại. Trong khi đó, các token truy cập có tuổi thọ dài rất khó bị thu hồi sau khi bị xâm phạm.
Các lỗi phổ biến
- Tái sử dụng bí mật kiểm thử trong môi trường sản xuất. Bộ tạo sẽ đánh dấu bí mật HS256 và JWT đầu ra là “chỉ dùng cho kiểm thử” nếu bí mật đó có vẻ yếu. Hãy tin vào cảnh báo này.
- Ký mà không có
exp. Một JWT không có hạn sử dụng sẽ có hiệu lực vĩnh viễn. Luôn thiết lậpexptrừ khi bạn có lý do rất chính đáng và có danh sách thu hồi. - Sử dụng
algtừ phần tiêu đề ở phía xác minh. Luôn đưa các thuật toán vào danh sách trắng ở phía xác minh; đừng làm theo yêu cầu của token. - Dán khóa riêng tư thật vào đây. Bộ tạo này chạy trực tiếp trong trình duyệt của bạn; tuy nhiên, hãy coi khóa riêng tư như thông tin mật: hãy dùng khóa thử thay vì khóa sản xuất.
Câu hỏi thường gặp
Không. Việc ký chữ ký được thực hiện trực tiếp trong trình duyệt thông qua Web Crypto API. Các khóa không bao giờ rời khỏi thiết bị của bạn. Tuy nhiên, đối với các khóa dùng trong môi trường sản xuất, hãy tạo và ký chữ ký trong một môi trường kiểm soát – chứ không phải trong trình duyệt.
HS256 phù hợp với các hệ thống đơn khối trong trường hợp cùng sử dụng và xác minh các dấu ấn dịch vụ giống nhau. RS256 hoặc ES256 là lựa chọn tốt hơn khi tổ chức phát hành và tổ chức xác minh tách biệt nhau – các khóa công cộng có thể được chia sẻ mà không làm lộ khóa ký.
Thời gian xử lý thường vào khoảng 5–15 phút đối với các token truy cập. Hãy sử dụng token làm mới có thời hạn hoạt động dài hơn để đảm bảo trải nghiệm người dùng liền mạch. Không bao giờ phát hành JWT mà không có yêu cầu exp.
Công cụ hỗ trợ phát ra mã alg: none nhằm kiểm thử có chủ đích các token bị lỗi hoặc không được ký, kèm theo cảnh báo nổi bật. Không bao giờ chấp nhận những token này trong mã sản xuất.
Công cụ liên quan
Trình tạo CSR
Tạo Yêu cầu ký chứng chỉ dạng PEM và private key RSA tương ứng. Chỉ định common name, các trường tổ chức và kích thước khóa (2048, 3072 hoặc 4096 bit).
Bộ mã hóa tệp Base64
Mã hóa mọi tệp (PDF, ZIP, ảnh, tệp thực thi) thành văn bản Base64 để nhúng vào JSON, email, YAML hoặc data URI. Chạy cục bộ, không tải lên.
Trình kiểm tra checksum
Tính checksum MD5, SHA-1, SHA-256, SHA-384, SHA-512 hoặc CRC32 của bất kỳ văn bản nào và đối chiếu với giá trị mong đợi để có kết luận rõ ràng là khớp hay không.
Nhận diện mật mã
Dán văn bản mã hóa vào, công cụ nhận diện sẽ gợi ý các sơ đồ mã hóa/mật mã khả dĩ: Base64, hex, nhị phân, Morse, Caesar hoặc thay thế, JWT và các hàm băm phổ biến.
Mã định danh mã hóa
Dán văn bản mã hóa hoặc giá trị hash; bộ định danh sẽ đề xuất các thuật toán hoặc phương thức mã hóa có khả năng áp dụng: MD5, SHA, bcrypt, AES, RSA, Base64 và nhiều loại khác.
Công cụ tính hash của tệp
Tính giá trị hash MD5, SHA-1, SHA-256 và SHA-512 của văn bản hoặc nội dung tệp bạn dán vào để xác minh bản tải xuống và tính toàn vẹn của tệp.
Công cụ này có phiên bản bằng các ngôn ngữ khác
- Generator JWT [ID]
- Generador de JWT [ES]
- Générateur de JWT [FR]
- JWT 생성기 [KO]
- JWT-generator [NL]
- JWT-generator [SV]
- JWTジェネレーター [JA]
- ตัวสร้าง JWT [TH]
- مولد JWT [AR]
- JWT-Generator [DE]
- Generator JWT [PL]
- Gerador de JWT [PT]
- Generatore JWT [IT]
- Генератор JWT [RU]
- JWT Oluşturucu [TR]
- JWT 生成器 [ZH]
- JWT Generator [EN]