Decoder dan Encoder JWT
Tempel JSON Web Token untuk membaca header dan claim-nya, melihat kapan token kedaluwarsa, dan memverifikasi signature-nya. Token Anda tidak pernah keluar dari halaman ini.
Pasang kalkulator ini di situs Anda
Salin kode ini lalu tempelkan ke HTML halaman Anda. Gratis; mohon jangan hapus tautan kreditnya.
Struktur JWT
JSON Web Token (RFC 7519) terdiri dari tiga string Base64URL yang digabung dengan titik: header.payload.signature. Header menyebutkan algoritma yang dipakai untuk menandatangani, payload berisi claim (ID pengguna, role, waktu kedaluwarsa), dan signature dihitung dari dua bagian pertama.
Pada HS256, signature adalah HMAC yang dibuat dengan secret bersama, jadi secret yang sama dipakai untuk menandatangani sekaligus memverifikasi. RS256, PS256, dan ES256 menandatangani dengan kunci privat dan memverifikasi dengan kunci publik, sehingga banyak layanan bisa memeriksa token tanpa bisa membuatnya.
Cara memeriksa token dengan aman
- Selalu verifikasi signature di server dan tolak alg "none".
- Tetapkan algoritma yang diharapkan: jangan biarkan header token yang memilihnya.
- Periksa exp, nbf, iss, dan aud, dengan toleransi selisih jam satu atau dua menit.
- Buat masa berlaku token singkat dan perlakukan token seperti kata sandi: decoder ini bekerja offline, tetapi banyak decoder online lain mengirim token ke server.
Claim JWT terdaftar (RFC 7519)
| Claim | Nama | Arti |
|---|---|---|
iss | Penerbit | Siapa yang membuat dan menandatangani token |
sub | Subjek | Tentang siapa token ini, biasanya ID pengguna |
aud | Penerima | Untuk siapa token ini ditujukan |
exp | Waktu kedaluwarsa | Detik sejak 1970; setelah waktu ini token harus ditolak |
nbf | Tidak berlaku sebelum | Detik sejak 1970; sebelum waktu ini token harus ditolak |
iat | Waktu terbit | Kapan token dibuat |
jti | ID JWT | ID unik untuk mencegah token dipakai ulang |
Pertanyaan umum
Apakah semua orang bisa membaca JWT?
Ya. Header dan payload hanya di-encode dengan Base64URL, tidak dienkripsi, jadi siapa pun yang memegang token bisa membacanya. Jangan pernah menaruh kata sandi atau data rahasia di payload JWT.
Apakah decode JWT memastikan token itu valid?
Tidak. Decode hanya membaca isinya. Hanya verifikasi signature dengan secret atau kunci publik yang benar yang membuktikan token tidak dipalsukan atau diubah, dan server juga wajib memeriksa exp, nbf, dan aud.
Kenapa token saya sudah kedaluwarsa padahal baru diterbitkan?
exp, iat, dan nbf dihitung dalam detik sejak 1970, bukan milidetik. Token yang dibuat dengan Date.now() JavaScript (milidetik) tanpa dibagi 1000 akan terlihat baru kedaluwarsa puluhan ribu tahun lagi, sedangkan selisih jam antar-server bisa membuat token yang baru dibuat tampak sudah kedaluwarsa atau belum berlaku.
Apakah yang saya tempel dikirim ke server?
Tidak. Alat ini berjalan sepenuhnya di browser Anda dengan JavaScript dan Web Crypto API bawaan. Apa pun yang Anda ketik, tempel, atau buka tidak di-upload maupun disimpan.