Generator JWT
Sign JWT dengan HS256/HS384/HS512, decode token, edit header/payload, preset claim (iat/exp/iss/aud/jti), Web Crypto API. 100% offline.
Tentang tools ini
Workbench JWT lengkap. Tab Sign memungkinkan kamu menyusun header (alg, typ, kid) dan payload (JSON apapun), pilih HS256/HS384/HS512, tempel atau auto-generate secret, dan hasilkan token tertandatangani menggunakan Web Crypto API browser. Preset claim menyisipkan iat = sekarang, exp = +1 jam/+24 jam/+7 hari, iss, aud, dan jti acak dengan satu ketuk. Tab Decode mengambil token apapun dan menampilkan header, payload (dengan nama claim standar iss/sub/aud/exp/nbf/iat/jti dianotasi, dan exp ditandai hijau/kuning/merah berdasarkan sisa masa berlaku), dan tanda tangan. Tombol "Pakai di Sign" mengembalikan token yang di-decode ke tab Sign supaya kamu bisa memodifikasi dan menandatangani ulang. Editor header memperingatkan pada JSON tidak valid, kotak secret bisa disembunyikan atau ditampilkan, dan tombol random-secret menghasilkan 32 byte hex. Semua berjalan di browser kamu โ token dan secret tidak pernah meninggalkan device kamu.
Detail
- Kategori
- developer
- Versi
- 1.0.0
- Ukuran
- 18 KB
- Diperbarui
- Jun 2026
Pertanyaan Umum
Apakah ini memverifikasi tanda tangan JWT?
Tab Decode menampilkan tanda tangan tapi tidak memverifikasinya. Verifikasi butuh algoritma yang tepat (HMAC untuk HS*, RSA/ECDSA untuk RS*/ES*) dan kunci yang cocok. Pakai library sisi server seperti jsonwebtoken (Node), jose (Node/browser), atau pyjwt (Python) untuk verifikasi. Tab Sign menggunakan Web Crypto HMAC dan menghasilkan tanda tangan yang bisa dicek oleh verifier standar mana pun dengan secret dan algoritma yang sama.
Kenapa hanya HS256/HS384/HS512 dan bukan RS256/ES256?
RS256 dan ES256 memakai kunci asimetris RSA dan ECDSA, yang butuh impor private key PEM. Itu berfungsi di browser tapi UX input jauh lebih berantakan (parsing PEM, impor key via crypto.subtle.importKey dengan format=spki/pkcs8). HS256/384/512 mencakup kasus penggunaan paling umum (token API shared-secret, auth service-to-service internal, development lokal) dan tetap benar-benar offline. Untuk signing RS/ES di browser, pakai tool yang didedikasikan untuk kunci asimetris.
Apa itu preset iat/exp?
iat (issued at) dan exp (expiration) adalah claim standar JWT yang menyimpan Unix seconds. Tombol +1 jam/+24 jam/+7 hari mengatur exp ke detik sebanyak itu di masa depan dari sekarang. Preset iat mengatur iat ke waktu Unix saat ini. Preset jti menghasilkan 16 karakter hex acak untuk ID token unik, berguna untuk token sekali pakai, reset password, atau mencegah serangan replay.
Bagaimana kerja generator secret acak?
Ia memanggil crypto.getRandomValues pada Uint8Array 32 byte (256 bit) dan merendernya sebagai 64 karakter hex. Itu memenuhi panjang kunci minimum HS256 (256 bit per RFC 7518 ยง3.2), minimum HS384 (384 bit โ kurang 16 karakter hex tapi tetap kuat secara kriptografis), dan minimum HS512 (512 bit โ juga kurang). Untuk HS384/HS512 kamu harus pakai secret 48 byte atau 64 byte. Perlakukan secret yang di-generate seperti password โ salin ke secret manager kamu dan jangan pernah commit.
Apakah secret saya dikirim ke mana pun?
Tidak. Baik signing maupun decoding adalah JavaScript murni sisi client yang memakai Web Crypto API. Secret, header, payload, dan token yang dihasilkan semuanya tetap di browser kamu. Tidak ada fetch, tidak ada XHR, tidak ada WebSocket, tidak ada CDN. Kamu bisa pakai tool untuk sign token untuk development lokal, test endpoint yang dilindungi JWT, atau menghasilkan token sekali pakai tanpa data apa pun yang ditransmisikan.