Developer

Pendekode JWT

Tempel JWT apa pun untuk langsung mendekode header dan payload-nya — periksa klaim, waktu kedaluwarsa, dan tanda tangan tanpa meninggalkan browser atau mengirim data ke mana pun.

Apakah kalkulator ini membantu Anda?

Apa itu Pendekode JWT?

JWT (JSON Web Token) adalah cara standar bagi API web modern untuk merepresentasikan klaim autentikasi dan otorisasi. Ini adalah token ringkas dan mandiri yang terdiri dari tiga bagian — header yang menjelaskan algoritma penandatanganan, payload yang membawa klaim sebenarnya (seperti ID pengguna, peran, dan kedaluwarsa), dan tanda tangan yang memungkinkan server penerima memverifikasi bahwa token tidak diubah. Decoder ini membaca header dan payload secara instan sehingga Anda dapat men-debug masalah autentikasi, memeriksa klaim apa yang sebenarnya dikirim oleh API, atau mengecek kapan token kedaluwarsa — semua tanpa memerlukan backend, alat CLI, atau menempelkan token sensitif ke server pihak ketiga, karena semuanya berjalan secara lokal di browser Anda.

Kapan Menggunakan Kalkulator Ini

  • Men-debug alasan API menolak token dengan memeriksa klaim dan waktu kedaluwarsanya
  • Memeriksa waktu kedaluwarsa token selama investigasi dukungan atau tanggap insiden
  • Memverifikasi bahwa penyedia SSO atau OAuth menerbitkan klaim yang diharapkan aplikasi Anda.
  • Mempelajari struktur JWT untuk persiapan wawancara atau kursus keamanan
  • Memeriksa token yang ditangkap dari dev tools browser atau log server untuk memahami isinya
  • Membandingkan algoritma header antara token untuk men-debug kegagalan autentikasi ketidakcocokan algoritma

Langkah-langkah:

  1. Tempel JWT Anda ke kotak input, atau klik "Muat Contoh" untuk mencobanya.
  2. Header dan payload didekode secara otomatis saat Anda mengetik.
  3. Tinjau klaim seperti iss, sub, exp, dan iat dalam bentuk yang mudah dibaca.
  4. Klaim timestamp (exp, iat, nbf) secara otomatis dikonversi menjadi tanggal yang mudah dibaca.

Rumus

JWT = base64Url(header) + "." + base64Url(payload) + "." + base64Url(signature) Mendekode: pisahkan berdasarkan ".", dekode Base64Url dua bagian pertama, parsing sebagai JSON. Memverifikasi (tidak dilakukan di sini): HMACSHA256(base64Url(header) + "." + base64Url(payload), secret) === signature

Kasus Penggunaan

  • Men-debug alasan API menolak token dengan memeriksa klaimnya
  • Memeriksa waktu kedaluwarsa token selama investigasi dukungan
  • Memverifikasi bahwa penyedia SSO atau OAuth menerbitkan klaim yang Anda harapkan
  • Mempelajari struktur JWT untuk persiapan wawancara atau tugas kuliah
  • Memeriksa dengan cepat token yang ditempel dari dev tools browser atau log server

Manfaat Utama

  • Dekode JWT apa pun secara instan tanpa backend atau alat CLI
  • Semuanya berjalan di sisi klien — token tidak pernah dikirim ke server
  • Secara otomatis mengonversi klaim timestamp menjadi tanggal yang mudah dibaca
  • Gratis, tanpa pendaftaran, berfungsi untuk JWT apa pun terlepas dari algoritmanya

Tips Profesional

  • Selalu periksa 'exp' terlebih dahulu saat men-debug error "unauthorized" — token kedaluwarsa adalah penyebab paling umum
  • Bandingkan 'alg' di header dengan yang diharapkan backend Anda untuk menangkap bug ketidakcocokan algoritma
  • Jangan pernah mempercayai payload yang didekode sebagai bukti identitas tanpa memverifikasi tanda tangan di sisi server
  • Gunakan token berumur pendek dengan refresh token daripada JWT berumur panjang untuk membatasi risiko jika token bocor

Kesalahan Umum yang Harus Dihindari

  • Menganggap JWT yang didekode sebagai JWT yang terverifikasi — dekode hanya membaca konten, tidak mengonfirmasi keasliannya
  • Menyimpan data sensitif (kata sandi, rahasia) di payload, lupa bahwa siapa pun dapat membacanya
  • Menempelkan token produksi ke decoder online yang tidak tepercaya
  • Mengacaukan 'exp' (kedaluwarsa) dengan 'iat' (waktu diterbitkan) saat men-debug masalah masa berlaku token

Istilah Kunci Dijelaskan

Klaim: Sepotong informasi yang dinyatakan tentang subjek, seperti ID pengguna atau peran
Header: Segmen pertama JWT, menentukan algoritma penandatanganan dan jenis token
Payload: Segmen kedua JWT, berisi klaim sebenarnya
Tanda Tangan: Segmen ketiga JWT, digunakan untuk memverifikasi bahwa token tidak diubah

Konsep Terkait

Contoh

Token yang dimulai dengan eyJhbGciOiJIUzI1NiJ9 didekode menjadi header {"alg":"HS256","typ":"JWT"} — memberi tahu bahwa token ditandatangani dengan HMAC-SHA256.

Interpretasi Hasil Anda

Dekoder memisahkan JWT pada dua pemisah titik dan mendekode dua segmen pertama dengan Base64URL. Header memberi tahu algoritma penandatanganan (seperti HS256 atau RS256) dan jenis token. Payload berisi klaim sebenarnya — identitas pengguna, izin, dan cap waktu. Klaim cap waktu (exp, iat, nbf) secara otomatis dikonversi dari epoch Unix ke tanggal yang dapat dibaca. Jika 'exp' menunjukkan tanggal di masa lalu, token sudah kedaluwarsa dan sebagian besar server akan menolaknya. Klaim 'sub' (subjek) biasanya berisi ID pengguna, dan 'iss' (penerbit) mengidentifikasi server yang membuat token. Ingat bahwa mendekode bukanlah verifikasi. Bagian tanda tangan ditampilkan tetapi tidak dapat diverifikasi tanpa kunci rahasia atau publik. Payload yang didekode hanya bersifat informasional — jangan pernah mempercayainya sebagai bukti identitas tanpa verifikasi tanda tangan di sisi server.

Pertanyaan Umum

Apa itu JWT?
JSON Web Token (JWT) adalah cara ringkas dan aman-URL untuk merepresentasikan klaim antara dua pihak. Terdiri dari tiga bagian yang dienkode Base64URL dan dipisahkan titik: header, payload, dan tanda tangan.
Apakah aman menempelkan JWT saya ke alat ini?
Proses dekode sepenuhnya terjadi di browser Anda menggunakan JavaScript — token tidak pernah dikirim ke server mana pun. Meski begitu, perlakukan JWT seperti kata sandi: hindari menempelkan token dari sistem produksi ke alat online mana pun, termasuk alat ini.
Mengapa alat ini tidak bisa memverifikasi tanda tangan?
Memverifikasi tanda tangan JWT membutuhkan kunci rahasia (untuk algoritma HMAC) atau kunci publik (untuk algoritma RSA/ECDSA) yang seharusnya hanya dimiliki server penerbit. Alat ini hanya mendekode header dan payload yang dapat dibaca — ia tidak pernah memiliki akses ke kunci tersebut.
Apa arti klaim 'exp'?
'exp' (Expiration Time) adalah timestamp Unix yang menunjukkan kapan token berhenti berlaku. Alat ini secara otomatis mengubahnya menjadi tanggal yang mudah dibaca sehingga Anda dapat dengan cepat memeriksa apakah token sudah kedaluwarsa.
Apa itu JWT?
JSON Web Token (JWT) adalah cara yang ringkas dan aman bagi URL untuk mewakili klaim antara dua pihak. Token ini terdiri dari tiga bagian yang dikodekan Base64URL dan dipisahkan oleh tanda titik: header, payload, dan tanda tangan.
Apakah aman menempelkan JWT saya ke alat ini?
Algoritma yang umum termasuk HS256 (HMAC-SHA256, simetris), RS256 (RSA-SHA256, asimetris), dan ES256 (ECDSA). Bidang 'alg' di header menentukan algoritma yang digunakan. Yang paling umum untuk API web adalah HS256 atau RS256.
Mengapa alat ini tidak bisa memverifikasi tanda tangan?
'iat' (Waktu Diterbitkan) adalah waktu token dibuat. 'nbf' (Sebelumnya Tidak Berlaku) adalah waktu token mulai berlaku. Jika 'nbf' berada di masa depan, token harus ditolak meskipun belum kedaluwarsa.
Apa arti klaim 'exp'?
Header dan payload hanya di-encode dengan Base64URL, bukan dienkripsi. Siapa pun bisa membacanya. Jangan pernah menyimpan kata sandi, rahasia, atau data pribadi sensitif di payload JWT. Hanya masukkan klaim non-sensitif seperti ID pengguna, peran, dan cap waktu.
Algoritma apa saja yang dapat digunakan JWT?
Token akses biasanya berlaku 15–60 menit. Token refresh berlaku dari beberapa jam hingga beberapa hari. Token akses berumur pendek dengan token refresh berumur panjang menyeimbangkan keamanan dan pengalaman pengguna.
Bagaimana cara menyalin klaim yang sudah didekode?
Token refresh adalah token berumur panjang yang digunakan untuk mendapatkan token akses baru tanpa mengharuskan pengguna melakukan autentikasi ulang. Saat token akses berumur pendek kedaluwarsa, klien mengirim token refresh untuk mendapatkan token akses baru.
Bagaimana cara menyalin klaim yang sudah didekode?
Header dan payload yang didekode ditampilkan sebagai JSON terformat. Anda dapat menyalin seluruh keluaran hasil dekode atau nilai klaim individual untuk tujuan debugging atau dokumentasi.

Temukan Lebih Banyak Alat

Pilihan segar dari seluruh pustaka alat kami.