Decoder JWT

Dekode JSON Web Token dan baca header serta klaim payload sebagai JSON rapi. Hanya mendekode, tanda tangan tidak diverifikasi.

Token Anda didekode sepenuhnya di browser Anda. Tidak pernah dikirim ke mana pun.

Dekoding hanya untuk inspeksi. Tanda tangan tidak diverifikasi di sini.

Apa yang ada di dalam JWT?

JSON Web Token (JWT) adalah cara ringkas dan mandiri untuk meneruskan klaim antar pihak. Token ini membungkus header, payload, dan tanda tangan ke dalam tiga string base64url yang dipisahkan titik, dan karena setiap bagiannya hanya dikodekan secara terang, Anda bisa membukanya dan membaca isinya tanpa kunci apa pun. Alat ini melakukan persis itu: memecah token Anda dan mencetak kedua bagiannya dengan rapi.

Header, payload, tanda tangan
Segmen pertama (header) menyatakan tipe token ("JWT") dan algoritma penandatanganan (HS256, RS256, ES256…). Segmen kedua (payload) berisi klaim: yang standar seperti sub (subjek), iss (penerbit), exp (kedaluwarsa), iat (waktu terbit), plus klaim kustom seperti id pengguna dan peran. Segmen ketiga (tanda tangan) adalah tanda tangan HMAC atau asimetris atas dua segmen pertama, yang justru melindungi token.
Kenapa dekoding tidak butuh kunci
Base64url adalah pengkodean, bukan enkripsi: tidak menyembunyikan apa pun. Perlindungan kriptografinya adalah tanda tangan, dan memverifikasinya membutuhkan kunci rahasia penerbit (HMAC) atau kunci publik (RSA/EC). Karena itu membaca token gratis untuk siapa saja, tetapi memalsukan atau mengubahnya tidak: perubahan apa pun pada header atau payload membatalkan tanda tangannya.
Kapan verifikasi itu penting
Setiap kali kode mengambil keputusan berdasarkan token —mengautentikasi pengguna, memberi akses, mempercayai klaim exp— kode itu harus memverifikasi tanda tangan dengan kunci penerbit, mencocokkan algoritma terhadap daftar yang diizinkan, serta memvalidasi exp, nbf, iss, dan aud. Mendekode, seperti yang dilakukan alat ini, tidak lebih dari alat bantu debug.

Pertanyaan yang sering diajukan

Apa saja tiga bagian dari JWT?

JWT terdiri dari tiga segmen base64url yang digabung dengan titik: header, payload, dan tanda tangan. Header menyatakan cara token ditandatangani (algoritma seperti HS256 atau RS256, plus tipenya). Payload membawa klaim — id pengguna, peran, kedaluwarsa (exp), penerbit (iss), dan sebagainya. Tanda tangan adalah bukti kriptografis bahwa dua bagian lainnya tidak diubah.

Mengapa JWT bisa didekode tanpa kunci rahasia?

Dekoding dan verifikasi adalah dua operasi berbeda. Header dan payload berupa base64url polos — tidak ada kriptografi pada keduanya, hanya pada tanda tangan. Siapa pun bisa mendekode JWT untuk membaca isinya; hanya pemegang kunci penandatanganan (atau kunci publik untuk algoritma asimetris) yang bisa memverifikasi keasliannya.

Kapan saya benar-benar perlu memverifikasi JWT?

Setiap kali sistem bertindak berdasarkan token: API yang memeriksa token autentikasi, server yang memvalidasi sesi, atau kode yang mempercayai klaim exp. Verifikasi memeriksa tanda tangan terhadap kunci penerbit, memastikan algoritmanya sesuai harapan, dan memvalidasi kedaluwarsa, penerbit, serta audiens. Jangan percaya isi JWT sebelum tanda tangannya diverifikasi oleh pihak penerbitnya.

Apa perbedaan antara JWT dan cookie sesi?

Cookie sesi adalah pegangan tak transparan: server menyimpan data sesi sebenarnya, dan cookie hanya merujuknya. JWT bersifat mandiri: semua klaim ikut dalam token, sehingga layanan tanpa state bisa memeriksanya tanpa query database. Tawarannya, JWT tidak bisa dicabut sebelum kedaluwarsa — Anda harus menunggu atau membuat daftar blokir.

Apakah token Anda dikirim ke mana pun saat memakai alat ini?

Tidak. Token didekode sepenuhnya di tab browser Anda dengan fungsi base64 bawaan JavaScript. Token tidak pernah meninggalkan perangkat Anda, tidak dicatat di log, dan tidak disimpan di mana pun. Waspada terhadap halaman mana pun yang meminta token lalu mengirimnya ke server.