Lompat ke konten
Reembun
JWT decoder icon
Developer

JWT decoder

Baca isi header dan payload sebuah JSON Web Token, lihat waktu kedaluwarsanya, tanpa token itu pernah meninggalkan browser Anda.

Decoding is not verification. A JWT payload is only Base64-encoded, not encrypted, so anyone holding the token can read it. This tool deliberately does not check the signature, because doing so would need your secret key. Never paste a production token you would not also be comfortable printing.

Ready. Runs locally on your device.

File Anda tetap berada di perangkat Anda. Alat ini bekerja langsung di browser Anda, menggunakan perangkat Anda untuk memproses file Anda. Tidak ada yang dikirim ke server kami, dan kami tidak pernah menerima, menyimpan, atau melihat file maupun angka Anda.

Bagikan

Bagikan halaman ini

Kutip

Kutip halaman ini

Reembun. (2026, 31 Juli). JWT decoder. https://reembun.com/id/jwt-decoder
Pilih gaya kutipan, lalu salin referensinya. Tanggal akses memakai tanggal hari ini.

Cara menggunakannya

  1. Tempel tokennya

    Token dipecah dan dibaca di dalam tab ini. Hal itu lebih penting di sini daripada di alat lain, karena token adalah kredensial yang hidup.

  2. Baca header dan payloadnya

    Keduanya ditampilkan sebagai JSON rapi, lengkap dengan algoritma penandatanganan dan nama klaim standarnya.

  3. Periksa waktunya

    Klaim iat, nbf, dan exp diterjemahkan dari epoch menjadi tanggal yang terbaca, dan token yang sudah kedaluwarsa ditandai.

  4. Ingat batasnya

    Membaca token bukan berarti memverifikasinya. Hanya server Anda, yang memegang kunci rahasia atau kunci publik, yang bisa memastikan tanda tangannya sah.

Anatomi sebuah JWT

Sebuah token terdiri dari tiga bagian yang dipisahkan titik:

header.payload.tanda-tangan

Ketiganya dikodekan dengan Base64 aman URL. Dua bagian pertama adalah JSON yang bisa dibaca siapa saja. Bagian ketiga adalah tanda tangan kriptografis atas dua bagian sebelumnya.

Header menyatakan algoritma dan tipe token:

{ "alg": "HS256", "typ": "JWT" }

Payload memuat klaim, yaitu pernyataan tentang pengguna dan tokennya:

{ "sub": "12345", "name": "Andi", "iat": 1785000000, "exp": 1785003600 }

Klaim baku

KlaimArti
issPenerbit token
subSubjek, biasanya pengenal pengguna
audAudiens yang berhak memakai token
expWaktu kedaluwarsa, dalam detik Unix
nbfTidak berlaku sebelum waktu ini
iatWaktu penerbitan
jtiPengenal unik token

Klaim waktu memakai detik Unix, bukan milidetik. Kesalahan mengalikan atau membagi 1000 membuat token yang seharusnya berlaku sejam terlihat berlaku ribuan tahun. Untuk memeriksa nilai mentahnya, gunakan konversi Unix timestamp.

Yang dijamin dan tidak dijamin tanda tangan

Tanda tangan menjamin bahwa isi token tidak diubah sejak diterbitkan, dan bahwa penerbitnya memegang kunci yang benar. Tanda tangan tidak menjamin isinya rahasia.

Konsekuensinya langsung dan sering terlupakan: jangan pernah menaruh data sensitif di dalam payload JWT. Nomor identitas, alamat lengkap, dan peran internal yang tidak boleh diketahui pengguna semuanya terbaca oleh siapa pun yang memegang token itu, termasuk oleh pengguna sendiri.

Algoritma yang umum

AlgoritmaJenisCatatan
HS256SimetrisSatu kunci rahasia bersama, cocok untuk satu layanan
RS256AsimetrisKunci privat menandatangani, kunci publik memverifikasi
ES256AsimetrisBerbasis kurva eliptik, tanda tangan lebih pendek
noneTidak adaJangan pernah diterima, dan sumber kerentanan klasik

Baris terakhir adalah kerentanan yang terkenal. Server yang menerima algoritma none akan memercayai token apa pun yang dibuat siapa pun. Tetapkan algoritma yang diterima secara eksplisit di sisi server, jangan mengambilnya dari header token.

Saat menelusuri masalah

Urutan pemeriksaan yang biasanya paling cepat menemukan penyebab:

  1. Baca klaim exp dan bandingkan dengan waktu sekarang.
  2. Periksa klaim aud dan iss, apakah cocok dengan yang diharapkan penerima.
  3. Periksa klaim nbf bila ada.
  4. Periksa selisih jam antar server, terutama pada lingkungan yang tersebar.
  5. Terakhir, baru periksa tanda tangan dan kuncinya.

Privasi

Token yang Anda tempel adalah kredensial hidup. Halaman ini membacanya di dalam browser Anda, tidak mengirimkannya ke mana pun, dan tidak menyimpannya.

Pertanyaan umum

Apakah aman menempel token asli ke alat semacam ini?

Di halaman ini, ya, karena pembacaan berjalan sepenuhnya di dalam tab browser Anda dan tidak ada permintaan jaringan yang membawa token itu ke mana pun. Pada alat yang berjalan di server, tidak. Token akses adalah kredensial hidup, dan menempelkannya ke situs yang mengirimnya ke server sama saja dengan menyerahkan sesi Anda.

Apakah JWT terenkripsi?

Tidak, kecuali Anda memakai varian JWE yang jarang dipakai. JWT biasa hanya dikodekan Base64 aman URL, sehingga siapa pun yang memegang tokennya bisa membaca seluruh isinya. Tanda tangan pada JWT menjamin token tidak diubah, bukan menjamin isinya rahasia.

Apakah alat ini memeriksa tanda tangan token?

Tidak. Memeriksa tanda tangan membutuhkan kunci rahasia atau kunci publik penerbitnya, dan menempelkan kunci rahasia ke alat daring adalah kebiasaan yang buruk. Halaman ini membaca isi token, yang merupakan kebutuhan sebenarnya saat menelusuri masalah.

Apa arti klaim exp, iat, dan nbf?

exp adalah waktu kedaluwarsa, iat adalah waktu token diterbitkan, dan nbf adalah waktu paling awal token boleh dipakai. Ketiganya berupa detik Unix, bukan milidetik. Alat ini menerjemahkannya menjadi tanggal dan jam yang terbaca.

Kenapa token saya ditolak padahal belum kedaluwarsa?

Kemungkinan yang paling sering adalah selisih jam antara server penerbit dan server penerima. Selisih beberapa detik saja bisa membuat klaim nbf atau exp gagal. Kemungkinan lain adalah audiens atau penerbitnya tidak cocok dengan yang diharapkan server penerima.

Terakhir ditinjau