Alat JWT (Decode / Verifikasi / Tanda Tangan)
Decode JWT, verifikasi signature, dan buat token baru dengan kontrol ketat. Token kamu tetap di browser — tanpa upload.
Tentang alat JWT ini
JWT (JSON Web Token) sering dipakai untuk sesi web, API authorization, dan login mobile. JWT bertipe JWS terdiri dari tiga segmen Base64URL: header, payload, dan signature. Decode dua segmen pertama itu mudah, tetapi mempercayai payload tanpa verifikasi adalah kesalahan umum. Di sini kamu bisa menempel token untuk melihat header/payload sebagai JSON, memeriksa klaim (iss, sub, aud, exp, nbf, iat, jti), dan melihat countdown “expires in”. Kamu juga bisa re-encode JSON ke Base64URL untuk membandingkan perubahan (signature tidak akan “dibetulkan” diam-diam).
Verifikasi berjalan client-side memakai WebCrypto API. Mode ketat menolak alg=none, mewajibkan daftar algoritma yang diizinkan, dan mencegah kebingungan kunci/algoritma (misalnya memakai kunci RSA untuk memverifikasi HS256). Masukkan secret, public key PEM, JWK, atau JWKS (tempel atau fetch dari URL) dan lihat kunci mana yang cocok berdasarkan kid. Untuk pembuatan token, kamu bisa sign HS*, RS/PS, atau ES untuk test fixture yang deterministik — tanpa upload secret.
Use case
Lihat header.alg/typ dan klaim payload tanpa mengeksekusi apa pun. Cocok untuk memahami isi token dengan cepat.
Verifikasi signature HS/RS/PS/ES secara lokal. Mode ketat menolak alg=none, memaksa allowlist, dan memblokir key/alg mismatch.
Tempel JWK atau JWKS (atau fetch dari JWKS URL) dan biarkan alat memilih kunci via kid. Override manual untuk debugging rotasi kunci.
Lihat waktu dan countdown untuk exp/nbf/iat. Tambahkan leeway untuk mengatasi perbedaan jam kecil.
Edit header/payload JSON lalu re-encode segmen. Signing dipisah agar kamu jelas melihat kenapa signature menjadi tidak valid.
Semua berjalan di browser. Tanpa upload dan tanpa logging token. Jika memilih JWKS URL, request dilakukan langsung dari perangkatmu.
Niat pencarian yang kami layani
Ini adalah kueri dan skenario umum saat orang decode, verifikasi, dan sign JWT.
FAQ JWT
Apakah JWT itu enkripsi?
Tidak. JWT (JWS) biasanya token yang ditandatangani. Header dan payload bisa di-decode Base64URL oleh siapa pun; signature-lah yang menjaga integritas.
Apa bedanya JWS dan JWE?
JWS adalah JWT bertanda tangan dengan 3 bagian. JWE adalah JWT terenkripsi dengan 5 bagian; kamu perlu kunci yang benar untuk mendekripsi.
Apa itu alg=none dan kenapa berbahaya?
alg=none menonaktifkan verifikasi signature. Jika diterima, penyerang bisa memalsukan token. Mode ketat menolak alg=none.
HS vs RS: bedanya apa?
HS* memakai secret bersama (HMAC). RS*/PS* memakai kunci RSA asimetris (public key untuk verifikasi, private key untuk sign). Tidak bisa dipertukarkan.
Apa itu kid dan bagaimana JWKS membantu?
kid mengidentifikasi kunci yang dipakai. JWKS adalah kumpulan kunci; verifier memilih kunci yang cocok berdasarkan kid (atau kamu bisa override manual).
Kenapa token saya “expired” atau “belum aktif”?
Periksa exp dan nbf (serta iat). Alat ini menampilkan countdown dan mendukung leeway untuk clock skew.
Apa itu clock skew (leeway)?
Jam server dan perangkat bisa selisih beberapa detik. Leeway membantu toleransi kecil saat memvalidasi exp/nbf/iat.
Apakah aman percaya payload setelah decode saja?
Tidak. Decode hanya Base64URL. Selalu verifikasi signature dan validasi klaim sebelum mempercayai data.
Kenapa signature rusak setelah re-encode?
Signature dihitung dari header.payload. Jika salah satu berubah, signature harus dihitung ulang dengan kunci yang benar.
Apakah alat ini mengupload token saya?
Tidak. Decode/verifikasi/sign berjalan di browser. Hanya fetch JWKS URL (jika diaktifkan) yang akan membuat request ke URL tersebut dari perangkatmu.