Chuyển đến nội dung
SPCX Tools

JWT Encoder

Tạo và ký JSON Web Token (JWT) dựa trên HMAC nhanh chóng ngay trên trình duyệt.

Chạy cục bộ — tệp không bao giờ rời khỏi thiết bị của bạn

Đang tải công cụ…

Cách sử dụng JWT Encoder

  1. 1Chọn thuật toán ký HMAC (HS256, HS384 hoặc HS512).
  2. 2Chỉnh sửa payload JSON. Dùng các nút thao tác nhanh để chèn thời gian hiện tại cho các claim tiêu chuẩn như iat và exp.
  3. 3Nhập secret key của bạn. Nếu hệ thống của bạn dùng secret mã hóa Base64, hãy tích vào ô Base64.
  4. 4Token được ký sẽ tự động cập nhật khi bạn nhập. Nhấn Sao chép để lấy JWT hoàn chỉnh.

Trình mã hóa JWT cục bộ, an toàn

Trình mã hóa jwt này cho phép các lập trình viên nhanh chóng tạo, chỉnh sửa và ký JSON Web Tokens trực tiếp ngay trên trình duyệt. Cho dù đang xây dựng luồng xác thực, kiểm thử API endpoint hay gỡ lỗi microservice, bạn đều có thể tạo token hợp lệ ngay lập tức mà không cần viết script hay để lộ thông tin xác thực cho các máy chủ bên thứ ba.

Nhờ sử dụng Web Crypto API tích hợp sẵn của trình duyệt, mọi quá trình xử lý dữ liệu và ký mã hóa đều diễn ra hoàn toàn trên thiết bị của bạn. JSON payload và secret key của bạn không bao giờ bị tải lên, lưu trữ hay ghi log. Phương thức ưu tiên xử lý tại máy (local-first) này giúp việc ký JWT online cực kỳ an toàn, ngay cả khi làm việc với các thông tin xác thực nhạy cảm trong môi trường development hoặc staging.

Cách tạo JWT token

Để tạo JWT token, bạn cần ba thành phần: header (xác định thuật toán), payload (chứa dữ liệu của bạn), và secret key (khóa bí mật để bảo vệ token).

Bắt đầu bằng việc chọn thuật toán. Công cụ này hoạt động như một trình tạo JWT HS256 mạnh mẽ, đồng thời hỗ trợ cả HS384 và HS512. Đây là các thuật toán HMAC đối xứng, nghĩa là cùng một secret key sẽ được dùng để ký (sign) và xác minh (verify) token sau này. Số càng lớn (ví dụ: 512) thì kích thước chuỗi hash tạo ra càng dài, giúp tăng cường độ bảo mật nhưng bù lại chuỗi token cũng sẽ dài hơn một chút.

Tiếp theo, hãy nhập payload vào ô văn bản. Payload phải là một định dạng JSON hợp lệ. Khi bạn chỉnh sửa JSON hoặc cập nhật secret key, công cụ sẽ tính toán lại chữ ký (signature) theo thời gian thực, đồng thời báo lỗi ngay lập tức nếu cấu trúc JSON của bạn sai cú pháp. Sau khi thiết lập xong payload và secret key, token hoàn chỉnh đã sẵn sàng để sao chép và sử dụng trong header Authorization hoặc cookie của ứng dụng.

Các trường hợp sử dụng phổ biến để tạo token

Việc có sẵn một công cụ tạo jwt đáng tin cậy là rất cần thiết trong phát triển web hiện đại. Các lập trình viên thường xuyên sử dụng công cụ này cho nhiều kịch bản kiểm thử và gỡ lỗi khác nhau:

Kiểm thử các API Endpoint: Khi làm việc với các API client như Postman hoặc Insomnia, bạn thường cần một bearer token hợp lệ để truy cập các route được bảo vệ. Thay vì phải chạy toàn bộ ứng dụng frontend để đăng nhập và lấy token, bạn có thể tạo thủ công một token tại đây với chính xác user ID và role mà bạn cần.

Gỡ lỗi logic xác thực: Nếu backend của bạn từ chối token, việc tạo token thủ công sẽ giúp khoanh vùng sự cố. Bạn có thể kiểm tra xem lỗi bắt nguồn từ sai secret key, payload sai định dạng hay do không khớp thuật toán ký.

Tạo các trường hợp ngoại lệ (Edge case): Việc kiểm thử cách backend xử lý các token hết hạn, thiếu claim hoặc role không đủ quyền là rất quan trọng đối với bảo mật. Bạn có thể dễ dàng tùy chỉnh JSON payload tại đây để tạo ra các trường hợp ngoại lệ này và đảm bảo server của bạn phản hồi đúng các mã trạng thái HTTP.

Quản lý timestamp và claim

JSON Web Token sử dụng các trường cụ thể, được gọi là claim, để truyền tải thông tin về vòng đời của token và người dùng mà nó đại diện. Các claim về thời gian phổ biến nhất là iat (Thời điểm phát hành) và exp (Thời gian hết hạn). Cả hai claim này đều yêu cầu Unix timestamp, tức là số giây đã trôi qua kể từ ngày 1 tháng 1 năm 1970.

Việc tính toán thủ công các timestamp này có thể khá mất thời gian khi test. Để tăng tốc quy trình làm việc, công cụ này cung cấp các nút thao tác nhanh ở phía trên trình chỉnh sửa payload.

  • Nhấp vào iat = now sẽ ngay lập tức chèn hoặc cập nhật trường iat với thời gian Unix hiện tại.
  • Nhấp vào exp = +1h hoặc exp = +24h sẽ tính toán timestamp trong tương lai và cập nhật trường exp tương ứng.

Điều này đảm bảo các token bạn tạo ra sẽ hợp lệ ngay lập tức và không bị logic xác thực thời gian của server từ chối sớm.

Xử lý secret Base64

Một vấn đề thường gặp khi ký JWT online là xử lý mã hóa secret key. Nhiều hệ thống backend và tài liệu hướng dẫn khuyên bạn nên tạo một mảng byte ngẫu nhiên, độ bảo mật cao cho HMAC secret và lưu trữ dưới dạng chuỗi Base64 trong các biến môi trường.

Nếu server của bạn giải mã chuỗi Base64 này thành byte thô (raw bytes) trước khi ký hoặc xác thực token, việc dán trực tiếp chuỗi Base64 vào công cụ tạo JWT thông thường sẽ cho ra chữ ký không hợp lệ. Công cụ sẽ coi các ký tự Base64 là văn bản thuần túy (plain text), dẫn đến sai lệch chữ ký.

Để khắc phục, bạn chỉ cần tích vào ô Secret được mã hóa Base64. Công cụ sẽ giải mã chuỗi secret của bạn về dạng byte thô ban đầu trước khi thực hiện băm HMAC, đảm bảo chữ ký tạo ra khớp hoàn toàn với môi trường backend của bạn.

Tìm hiểu cấu trúc JWT

Khi bạn tạo token, kết quả sẽ được hiển thị phân biệt bằng màu sắc để giúp bạn dễ dàng nhận biết cấu trúc. Một JWT tiêu chuẩn gồm ba phần được phân tách bằng dấu chấm (.):

  1. Header (Màu đỏ): Chứa siêu dữ liệu về token, chủ yếu là thuật toán ký (ví dụ: {"alg":"HS256","typ":"JWT"}). Phần này được tạo tự động dựa trên thuật toán bạn chọn và được mã hóa Base64-URL.
  2. Payload (Màu xanh dương): Dữ liệu JSON thực tế của bạn, cũng được mã hóa Base64-URL. Bất kỳ ai bắt được token đều có thể dễ dàng đọc được phần này, đó là lý do tại sao bạn không bao giờ nên đưa mật khẩu hoặc dữ liệu cực kỳ nhạy cảm vào payload.
  3. Signature (Màu xanh lá): Mã băm mật mã của header và payload đã mã hóa, được ký bằng khóa bí mật (secret key) của bạn. Phần này đảm bảo rằng token không bị sửa đổi trong quá trình truyền tải.

Nếu bạn đã có sẵn một token và muốn xem nội dung bên trong mà không cần khóa bí mật, bạn có thể dán nó vào công cụ Giải mã JWT của chúng tôi để kiểm tra header và payload một cách an toàn.

Câu hỏi thường gặp

Công cụ này hỗ trợ những thuật toán nào?
Công cụ này hiện hỗ trợ các thuật toán dựa trên HMAC: HS256 (HMAC với SHA-256), HS384 và HS512. Đây là các thuật toán đối xứng, nghĩa là cùng một khóa bí mật (secret key) được dùng để ký và xác minh token.
Khóa bí mật của tôi có bị gửi đến máy chủ không?
Không. Mọi quá trình ký mã hóa đều diễn ra cục bộ trên trình duyệt của bạn thông qua Web Crypto API. JSON payload và khóa bí mật của bạn không bao giờ rời khỏi thiết bị, do đó đây là một cách an toàn để tạo token cho mục đích thử nghiệm.
Hộp kiểm Base64 có tác dụng gì?
Trong nhiều backend framework, JWT secret được lưu trữ dưới dạng chuỗi mã hóa Base64 thay vì văn bản thuần túy (plain text). Đánh dấu vào hộp kiểm này sẽ giải mã đầu vào của bạn thành các byte thô (raw bytes) trước khi áp dụng thuật toán HMAC, đảm bảo chữ ký được tạo khớp chính xác với những gì máy chủ của bạn yêu cầu.
Các nút thời gian hoạt động như thế nào?
Các nút iat (thời điểm phát hành) và exp (thời điểm hết hạn) sẽ chèn Unix timestamp chuẩn (số giây tính từ ngày 1 tháng 1 năm 1970) vào JSON payload của bạn. Điều này giúp bạn không phải tra cứu hoặc tính toán thủ công epoch time hiện tại.
Tại sao token của tôi không hợp lệ khi xác minh trên máy chủ?
Nguyên nhân phổ biến nhất là do sai khóa bí mật, sai thuật toán hoặc không khớp cách mã hóa secret. Hãy đảm bảo bạn đang sử dụng chính xác cùng một chuỗi secret và kiểm tra xem máy chủ của bạn có yêu cầu giải mã Base64 cho secret trước khi ký hay không.