JWT Decoder
Decode, verifikasi, dan tanda tangani ulang JSON Web Token secara instan — sepenuhnya di dalam browser Anda.
Buat dan tandatangani JWT dari nol di browser Anda. Kunci tidak pernah meninggalkan halaman ini.
Bagaimana cara kerja decoding JWT sisi klien — dan kenapa itu penting?
Sebuah JSON Web Token memang terlihat seperti kumpulan karakter acak yang tidak terbaca, tapi sebenarnya hanya terdiri dari tiga bagian yang di-encode dengan Base64URL dan digabung dengan titik: header, payload, dan signature. Men-decode header dan payload sama sekali bukan proses enkripsi — siapa pun yang memegang token bisa membaca claim di dalamnya, dan itulah sebabnya data sensitif tidak boleh dimasukkan ke dalam payload JWT. Masalahnya, token yang perlu diperiksa orang jarang berupa data uji coba yang aman dibuang. Token itu sering kali adalah session token aktif dari aplikasi produksi, access token API, atau cookie login yang diambil langsung dari dev tools browser saat sedang debugging — kredensial asli yang, jika jatuh ke tangan yang salah, memberikan akses nyata. Menempelkan token semacam itu ke situs sembarangan sama saja dengan menyerahkan sesi Anda ke server yang sama sekali tidak Anda kenal.
Alat ini tidak pernah melakukan hal itu. Header dan payload di-decode dengan JavaScript murni yang berjalan di browser Anda begitu Anda menempelkan token — dipecah berdasarkan titik, di-decode dari Base64URL, lalu di-parse sebagai JSON — dan tidak ada satu pun bagian yang dikirim ke mana pun. Verifikasi signature bekerja dengan cara yang sama, menggunakan Web Crypto API (`SubtleCrypto`) yang sudah tersedia bawaan di setiap browser modern: algoritma HMAC (HS256, HS384, HS512) diverifikasi terhadap secret yang Anda ketik sendiri, sedangkan algoritma RSA (RS256, RS384, RS512) diverifikasi terhadap public key yang Anda tempel dalam format PEM. Baik secret kriptografis maupun proses verifikasinya sendiri tetap berada secara lokal di tab browser Anda; muat ulang halaman, dan semuanya — token, secret, key — langsung hilang.
Tempel sebuah token untuk melihat header dan payload-nya ditampilkan rapi, lengkap dengan pembacaan claim standar `exp`, `iat`, dan `nbf` yang dikonversi ke format tanggal yang mudah dibaca manusia, disertai badge "Kedaluwarsa" yang jelas jika `exp` token sudah terlewati — berguna untuk memastikan apakah laporan bug "saya tiba-tiba ter-logout" ternyata hanya token yang sudah kedaluwarsa. Jika algoritmanya HS256/384/512 atau RS256/384/512, masukkan secret atau public key yang sesuai untuk memeriksa apakah signature-nya asli atau sudah diutak-atik. Algoritma di luar daftar itu (seperti ES256 atau `none` yang tidak ditandatangani) tetap berhasil di-decode dengan baik, namun opsi verifikasi tidak ditampilkan daripada memalsukan hasilnya. Untuk kebutuhan pengembangan lokal, kotak header/payload yang bisa diedit memungkinkan Anda mengubah sebuah claim — misalnya mengganti user ID atau role — lalu menandatangani ulang token dengan secret HS256 yang sama seperti yang dipakai server uji coba Anda, cara umum untuk menguji logika otorisasi tanpa harus menjalankan alur login lengkap.
Karena payload JWT setelah di-decode adalah JSON biasa yang mudah dibaca, alat ini cocok dipadukan dengan JSON Formatter & Validator jika Anda perlu memeriksa claim yang bersarang dalam-dalam secara lebih detail. Satu pengingat keamanan yang perlu diulang: karena proses decoding sama sekali tidak memerlukan secret, perlakukan setiap token sebagai data sensitif begitu selesai diperiksa, dan segera rotasi kredensial yang seharusnya hanya berumur pendek jika Anda tidak yakin di tempat lain mana saja token itu pernah ditempelkan sebelum sampai di sini.
Pertanyaan yang sering diajukan
Apakah alat ini bisa memverifikasi tanda tangan JWT, bukan hanya mendekodenya?
Ya — verifikasi tanda tangan HMAC (HS256/384/512) dan RSA (RS256/384/512) sama-sama didukung.
Apakah token atau secret saya dikirim ke suatu tempat?
Tidak — dekode, verifikasi, dan penandatanganan ulang semuanya terjadi lokal di browser Anda memakai Web Crypto API.
Bisakah saya mengedit payload dan membuat token baru yang bertanda tangan?
Bisa — edit JSON header/payload lalu tandatangani ulang dengan secret HMAC untuk mendapatkan token baru.