Enkode

JWT Encoder/Decoder

Encode dan decode token JWT — header, payload, tanda tangan HMAC, dan field standar.

A JWT (JSON Web Token) is a compact format for transmitting signed data, made of three dot-separated parts: a header, a payload, and a signature. This tool decodes any JWT and shows all three parts, and can also build a new token signed with HMAC.

Decoding does not verify the signature — reading a token's contents needs no secret key. Verifying the signature only matters when you need to trust the token as genuine.

How to use it

Common uses

Things to keep in mind

A JWT is not encrypted, only Base64URL-encoded — anyone can read the payload. Never put passwords or other secrets in it.

The signature protects against tampering, not against being read. For confidentiality you need extra encryption (JWE) or an HTTPS transport.

Artikel tentang alat ini: JWT: struktur token dan arti "mendekode" JWT

Pertanyaan yang sering diajukan

Apakah decode JWT di sini membuktikan token itu asli/valid?

Tidak. Decode hanya membongkar header dan payload dari Base64URL, jadi Anda bisa melihat isi claim-nya. Untuk benar-benar memverifikasi tanda tangan (signature) dibutuhkan secret atau public key yang sesuai — tanpa itu, siapa pun bisa melihat isinya tapi tidak tahu apakah token tersebut sah.

Kenapa saya perlu memasukkan secret untuk membuat contoh token?

Membuat (encode) JWT berarti menandatangani header dan payload dengan algoritma seperti HS256, yang butuh secret sebagai kunci. Tanpa secret yang benar, siapa pun yang menerima token nanti tidak bisa memverifikasi keasliannya.

Apakah token dan secret yang saya masukkan dikirim ke server?

Tidak. Semua proses decode, encode, dan penandatanganan berjalan langsung di browser Anda, token dan secret tidak pernah dikirim ke server mana pun.

Apa itu serangan penggantian algoritma menjadi "none"?

Jika backend secara naif mempercayai kolom alg dari header token, penyerang dapat menggantinya menjadi none, menghapus tanda tangan — dan token dengan data sembarang akan lolos verifikasi. Library yang andal mewajibkan penentuan algoritma yang diharapkan secara eksplisit saat verifikasi.

Kenapa sebaiknya tidak menyimpan JWT di localStorage untuk sesi sensitif?

localStorage dapat diakses oleh kode JavaScript apa pun di halaman, sehingga rentan terhadap XSS — skrip berbahaya bisa mencuri token. Untuk token sesi, httpOnly cookie yang tidak dapat diakses JavaScript jauh lebih aman.

Artikel: Enkode

Base64: untuk apa enkode dan bagaimana cara kerjanya

Bagaimana Base64 mengubah data biner menjadi teks ASCII dan kapan ini benar-benar diperlukan.

Base32: bedanya dengan Base64 dan kapan lebih praktis

Alfabet Base32 yang tidak membedakan huruf besar/kecil, dan kasus di mana ia lebih praktis daripada Base64.

URL Encode/Decode: percent-encoding dalam tautan

Bagaimana karakter khusus dalam alamat dan parameter berubah menjadi urutan %XX.

HTML Entities: cara menampilkan karakter khusus dengan aman

Mengapa karakter < > & perlu di-escape dan bagaimana ini mencegah markup rusak.

Unicode Escape: arti urutan \uXXXX

Dari mana asal urutan seperti \u0041 dalam JSON dan string JS, serta artinya.

ROT13 dan sandi Caesar: substitusi karakter sederhana

Mengapa pergeseran 13 huruf membuat ROT13 mengoreksi dirinya sendiri, dan mengapa masih digunakan sekarang.

Punycode: bagaimana domain internasional bekerja di DNS

Bagaimana domain dengan karakter non-Latin menjadi bentuk ASCII dengan awalan xn--.

Kode Morse: bagaimana teks berubah menjadi titik dan garis

Prinsip pengenkodean huruf menjadi titik dan garis, serta di mana kode Morse masih digunakan sekarang.

Data URI: kapan menyematkan gambar langsung ke dalam kode

Bagaimana Data URI menyematkan isi berkas langsung ke HTML atau CSS, dan kapan hal ini sepadan.

Gzip + Base64: mengompresi data untuk dikirim sebagai teks

Mengapa data biner terkompresi juga dienkode Base64 sebelum dimasukkan ke bidang teks.

XML Entities: meng-escape karakter dalam dokumen XML

Lima entity XML wajib, tanpanya dokumen rusak saat diuraikan.