CalcMint

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.

Decoder dan generator JWT

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkphbmUgRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTc2NzIyNTYwMCwiZXhwIjoxODkzNDU2MDAwfQ.vgHtS5dyaSUxDoPpQPoyaFVrg5I8B0EV9R0_Ah59pxU

Header

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

Payload

{
  "sub": "1234567890",
  "name": "Jane Doe",
  "admin": true,
  "iat": 1767225600,
  "exp": 1893456000
}
Algoritma (alg)
HS256
Tipe (typ)
JWT
Subjek (sub)
1234567890
Diterbitkan (iat)
Kamis, 01 Januari 2026 pukul 09.00.00 GMT+9
Kedaluwarsa (exp)
Selasa, 01 Januari 2030 pukul 09.00.00 GMT+9
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)

ClaimNamaArti
issPenerbitSiapa yang membuat dan menandatangani token
subSubjekTentang siapa token ini, biasanya ID pengguna
audPenerimaUntuk siapa token ini ditujukan
expWaktu kedaluwarsaDetik sejak 1970; setelah waktu ini token harus ditolak
nbfTidak berlaku sebelumDetik sejak 1970; sebelum waktu ini token harus ditolak
iatWaktu terbitKapan token dibuat
jtiID JWTID 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.

Kalkulator terkait