JWT Decoder & Verifikasi

Tempel JSON Web Token untuk memeriksa header dan payload-nya, melihat kapan token kedaluwarsa, dan memverifikasi tanda tangannya. Proses decode dilakukan secara lokal — token kamu tidak pernah meninggalkan browser.

Diperbarui
🔒 Token kamu di-decode dan diverifikasi secara lokal di browser. Token tidak pernah dikirim ke server, dicatat, atau disimpan.
Header
Payload

Claims

Verifikasi tanda tangan (opsional)

Data kamu tidak pernah meninggalkan komputer kamu. Semua proses berjalan 100% secara lokal di browser kamu.

Apakah alat ini membantu?0.0 0 penilaian
Buat OAuth 2.0 PKCE code verifier dan S256 code challenge langsung di browser, lengkap dengan state, nonce, URL otorisasi, dan request tokenGenerator PKCE →

Cara menggunakan JWT Decoder

  1. Tempel JWT (dengan atau tanpa awalan Bearer) ke kotak Encoded token, atau klik Muat contoh.
  2. Baca header dan payload yang sudah di-decode; badge menampilkan algoritma dan apakah token sudah kedaluwarsa.
  3. Periksa tabel Claims untuk melihat waktu exp, iat dan nbf yang mudah dibaca sesuai zona waktu lokal kamu.
  4. Opsional: verifikasi tanda tangan dengan memasukkan shared secret untuk HS256/384/512, atau tempel public key (PEM atau JWK) untuk token RS, PS, ES dan EdDSA.

Apa itu JWT?

JSON Web Token (JWT, dibaca “jot”, didefinisikan dalam RFC 7519) adalah string ringkas dan aman untuk URL yang dipakai untuk mengirim claims antar pihak — paling sering sebagai access token atau ID token di OAuth 2.0 dan OpenID Connect, dikirim dalam header Authorization: Bearer …. Token ini terdiri dari tiga bagian yang dikodekan dengan Base64URL dan dipisahkan oleh titik:

  1. Header — JSON yang mendeskripsikan token, misalnya {"alg":"HS256","typ":"JWT"}.
  2. Payload — JSON berisi claims: siapa penggunanya, apa yang boleh dilakukan, dan kapan token kedaluwarsa.
  3. Signature — dihitung dari header.payload menggunakan secret atau private key, sehingga perubahan pada dua bagian pertama akan membuat tanda tangan tidak valid.

Penting: header dan payload hanya dikodekan, bukan dienkripsi. Siapa pun yang memegang token bisa membacanya — dan itulah yang dilakukan decoder ini. Jangan pernah menaruh secret atau data pribadi yang sensitif di payload JWT. (Ada token terenkripsi — JWE, dengan lima bagian — tetapi payload-nya hanya bisa dibaca dengan kunci dekripsi.)

Registered claims

ClaimNamaArti
issIssuerPihak yang menerbitkan token (misalnya URL auth server kamu)
subSubjectPengguna atau entitas yang diwakili oleh token
audAudienceAPI yang seharusnya menerima token ini
expExpirationUnix time setelah token harus ditolak
nbfNot beforeUnix time sebelum token belum berlaku
iatIssued atUnix time saat token dibuat
jtiJWT IDID unik, berguna untuk mencegah replay

Claim waktu dihitung dalam detik sejak 1 Januari 1970 UTC — bukan milidetik. Ini sering menjadi bug saat membuat token di JavaScript dengan Date.now(). Decoder ini mengubahnya menjadi tanggal yang mudah dibaca; untuk timestamp lain gunakan Konverter Unix Timestamp.

Algoritma tanda tangan

HS256/384/512 memakai HMAC dengan shared secret: kunci yang sama digunakan untuk menandatangani dan memverifikasi, sehingga setiap pihak yang memverifikasi juga bisa membuat token. RS256 (RSA), PS256 (RSA-PSS), ES256 (ECDSA P-256) dan EdDSA memakai private key untuk menandatangani dan public key untuk memverifikasi — pilihan yang lebih baik jika beberapa layanan harus memvalidasi token. Identity provider biasanya mempublikasikan public key mereka sebagai JWKS di URL seperti /.well-known/jwks.json; kamu bisa menempel JSON tersebut di sini, dan key yang cocok dengan kid token akan dipilih otomatis. Verifikasi menggunakan Web Crypto API bawaan browser.

Checklist keamanan

  • Selalu verifikasi tanda tangan di server — decode saja tidak membuktikan apa pun.
  • Tolak alg: none dan tetapkan algoritma yang kamu harapkan, untuk menghindari serangan algorithm confusion.
  • Periksa exp, nbf, iss dan aud, dengan toleransi selisih jam (clock skew) yang kecil.
  • Untuk HS256, gunakan secret acak minimal 256 bit — Password Generator bisa membuatkannya untukmu.

Juga dicari sebagai: decode jwt online, cek token jwt, json web token, verifikasi jwt, jwt expired, decode bearer token, jwt parser.

Tool yang cocok dipakai bersama JWT Decoder

  • Generator PKCE — Uji atau debug login OAuth 2.0 / OpenID Connect dengan PKCE.
  • Encode / Decode Base64 — Ubah teks ke Base64 dan sebaliknya dengan dukungan UTF-8 penuh (aksen, emoji), beralih ke Base64 URL-safe, atau seret file untuk mendapatkan string Base64 atau data URI-nya.
  • Generator Hash — Hitung hash MD5 dan SHA dari teks atau file apa pun secara instan, buat tanda tangan HMAC, dan tempel checksum yang diharapkan untuk memverifikasi unduhan.
  • Format JSON — Tempel JSON untuk dirapikan, di-minify, atau divalidasi.

Pertanyaan yang sering diajukan

Amankah menempel JWT saya di sini?
Decode dan verifikasi sepenuhnya berjalan di browser kamu — token tidak dikirim ke server mana pun, tidak disimpan, dan tidak dimasukkan ke URL. Meski begitu, perlakukan token produksi seperti password: utamakan token yang sudah kedaluwarsa atau token uji, dan jangan pernah membagikan token yang masih aktif.
Bisakah JWT di-decode tanpa secret?
Bisa. Header dan payload hanyalah JSON yang dikodekan Base64URL, sehingga siapa pun bisa membacanya. Secret atau key hanya dibutuhkan untuk memverifikasi tanda tangan, yaitu untuk membuktikan bahwa token itu asli dan tidak diubah.
Bagaimana cara mengecek apakah JWT sudah kedaluwarsa?
Lihat claim exp — sebuah Unix timestamp dalam detik. Tool ini membandingkannya dengan jam perangkatmu dan menampilkan badge “Expired” atau “Not expired” beserta waktu persisnya sesuai zona waktu kamu.
Apa perbedaan HS256 dan RS256?
HS256 memakai satu shared secret untuk menandatangani dan memverifikasi (HMAC simetris). RS256 menandatangani dengan private key RSA dan memverifikasi dengan public key (asimetris), sehingga pihak yang hanya memverifikasi tidak bisa membuat token.
Kenapa verifikasi gagal padahal secret-nya benar?
Periksa apakah secret disimpan dalam format Base64 (centang opsinya), ada spasi atau baris baru yang tidak sengaja, dan pastikan token tidak diubah — satu karakter yang berubah di header atau payload saja sudah membuat tanda tangan tidak valid.
Bisakah saya memasang JWT Decoder sebagai aplikasi web dan memakainya offline?
Bisa. JWT Decoder adalah aplikasi web (PWA) yang bisa dipasang. Pemasangannya lewat browser kamu, bukan diunduh dari toko aplikasi. Klik Pasang aplikasi di bagian atas halaman ini di Chrome atau Edge (Windows, macOS, Linux, ChromeOS) atau di Android. Di iPhone dan iPad, gunakan Bagikan → Tambahkan ke Layar Utama, dan di Safari 17+ pada Mac, gunakan File → Tambahkan ke Dock. Setelah itu, aplikasi akan terbuka di jendelanya sendiri dengan ikonnya sendiri. Karena berjalan sepenuhnya di browser kamu, aplikasi ini tetap bisa dipakai offline. Firefox di desktop tidak bisa memasang aplikasi web. Cara memasang aplikasi.

Tool terkait