Enkode
JWT Encoder/Decoder
Encode dan decode token JWT — header, payload, tanda tangan HMAC, dan field standar.
Contoh yang ditandatangani (semua kecuali none) memerlukan HTTPS — halaman ini sedang dibuka tanpa HTTPS.
Untuk RS/PS/ES, kunci dibuat otomatis dan sementara — hanya untuk demonstrasi, tidak dapat digunakan ulang.
Contoh yang ditandatangani (semua kecuali none) memerlukan HTTPS — halaman ini sedang dibuka tanpa HTTPS.
Claims
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
- Decode: paste a JWT and the tool splits it into header, payload, and signature, highlighting standard claims like exp, iat, and sub.
- Encode: fill in the header and payload, provide a secret, and get a signed HMAC token (HS256/HS384/HS512) back.
- Check expiry: the exp claim is shown as a normal date, so you can immediately tell if a token has expired.
Common uses
- Debugging authentication issues by inspecting exactly what a request's token contains.
- Checking which claims (roles, permissions, expiry) your backend issues.
- Generating a test token for local development without running an auth server.
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.