Dekoder JWT
BaruDekode JSON Web Token, periksa klaim, dan verifikasi tanda tangan HS256 secara lokal.
A JWT is a credential. This decoder, verifier and encoder run 100% in your browser — your token and secret are never uploaded, logged, or sent to any server. Even so, never paste a real production token into a site you don't fully trust.
The signature is a keyed hash of the header and payload. It proves the token wasn't altered — verify it below.
| Claim | Value |
|---|
This payload has no standard claims (iss, sub, exp…). All of its data is shown in the Payload panel above.
Runs entirely in your browser. Nothing is uploaded.
Decode JSON Web Token apa pun di browser Anda
JWT decoder ini mengubah string eyJ… yang tidak terbaca menjadi JSON yang jelas dalam sekejap. Tempel JSON Web Token dan tool ini memecahnya di titik-titik, men-decode Base64URL header dan payload, lalu mem-pretty-print keduanya berdampingan, dengan signature mentah ditampilkan terpisah. Ini cara cepat untuk men-debug alur autentikasi, memeriksa token dari respons API, atau memastikan claim apa persis yang diterbitkan backend Anda.
Setiap bagian token diberi warna berbeda — header, payload, dan signature — sehingga ketiga bagian dari header.payload.signature mudah dibedakan sekilas. Tidak ada akun, tidak ada upload server, dan tidak ada batas decode harian.
Baca claim dan cek masa berlaku sekilas
Decoder ini menyorot claim standar yang terdaftar di RFC 7519 — iss, sub, aud, exp, nbf, iat dan jti — dalam tabel yang jelas dengan arti dalam bahasa sederhana untuk masing-masing. Tiga claim timestamp berupa detik Unix epoch, yang mudah salah dibaca, jadi tool ini mengonversinya ke tanggal dan waktu lokal Anda serta menambahkan petunjuk relatif seperti 'diterbitkan 5 menit lalu' atau 'kedaluwarsa dalam 59 menit'.
Yang paling penting, ia menjawab pertanyaan yang biasanya membuat Anda membuka JWT debugger: apakah token ini masih berlaku? Claim exp diperiksa terhadap waktu saat ini dan token ditandai Valid atau Expired, dengan nbf juga dihormati, sehingga Anda langsung tahu apakah token kedaluwarsa adalah penyebab sebuah permintaan ditolak. jwt.io menampilkan timestamp mentah tapi tidak menandai status kedaluwarsa secara otomatis — Anda harus menghitungnya sendiri.
Verifikasi signature — HS256, RS256, dan ES256
Decoding menunjukkan apa isi sebuah token; verifikasi membuktikan apakah Anda bisa mempercayainya. Tool ini juga merupakan JWT signature verifier: ia membaca algoritma dari header dan memverifikasi signature secara lokal dengan Web Crypto API milik browser. Untuk HS256, HS384 dan HS512 Anda memasukkan shared secret HMAC; untuk RS256, PS256 dan ES256 (serta varian 384/512-nya) Anda menempel public key penerbit dalam format PEM.
Karena perhitungannya berjalan di perangkat Anda, Anda bisa memastikan sebuah token asli — bahwa tidak ada yang mengubah payload-nya — tanpa mengirim token, secret, atau key ke server mana pun. Tanda centang hijau berarti signature cocok; tanda silang merah berarti token diubah atau Anda memakai key yang salah. jwt.io membutuhkan upgrade akun untuk memverifikasi token RS256 dengan public key kustom; tool ini melakukannya gratis, selalu.
Buat dan encode JWT juga
Butuh arah sebaliknya? JWT encoder bawaan memungkinkan Anda merancang token dari awal. Edit header dan payload sebagai JSON, pilih algoritma HMAC, masukkan secret, dan tool ini menghasilkan token header.payload.signature yang ditandatangani dengan benar dan siap disalin ke sebuah permintaan atau tes. Shortcut praktis menyisipkan claim iat dan exp segar sehingga token uji Anda punya timestamp yang realistis.
Itu menjadikan UtiloKit JWT decoder dan encoder gabungan — memeriksa token yang datang kembali dari API Anda dan membuat yang baru untuk dikirim, semuanya di tempat yang sama. Ini alur kerja yang sama yang dipakai developer dengan jwt.io, tapi tanpa keterlibatan server dan tanpa akun yang dibutuhkan.
Bagaimana ini dibandingkan dengan jwt.io, token.dev, dan jwtdecode.com
jwt.io adalah tool JWT paling dikenal di web — dibuat oleh Auth0, banyak ditautkan di dokumentasi, dan dipercaya jutaan developer. Batasan utamanya adalah privasi: jwt.io mengirim token Anda ke server Auth0 dalam beberapa konfigurasi, dan terintegrasi dengan produk komersial Auth0. Jika Anda men-debug token dari sistem autentikasi kompetitor atau API internal rahasia, itu jadi masalah.
token.dev dan jwtdecode.com mencakup decoding dasar tapi tidak mendukung verifikasi signature RS256/ES256 dengan PEM key, yaitu algoritma yang dipakai Auth0, Google, Microsoft Azure AD, Okta, dan sebagian besar penyedia OIDC enterprise. Anda akhirnya harus menyalin public key dari endpoint JWKS penyedia dan memverifikasinya secara manual di kode.
Decoder UtiloKit ini menangani semua itu di browser: decoding, cek kedaluwarsa, dan verifikasi signature penuh di seluruh keluarga algoritma HS/RS/PS/ES — gratis, tanpa akun, tanpa batas harian, dan tanpa apa pun yang meninggalkan perangkat Anda. Ini tool yang tepat untuk pekerjaan debugging autentikasi harian.
Keamanan JWT: apa yang bisa dan tidak bisa dilindungi token
JWT ditandatangani untuk integritas, bukan dienkripsi untuk kerahasiaan. Siapa pun yang memegang token bisa membaca setiap claim dalam payload — encoding Base64URL-nya bisa dibalik dengan mudah, seperti yang ditunjukkan decoder ini. Jadi payload seharusnya hanya berisi pengenal yang tidak sensitif: user ID, role, atau email. Jangan pernah menaruh password, detail pembayaran, atau API key dalam payload JWT.
Signature melindungi dari perubahan: jika penyerang mengubah bahkan satu karakter dari payload, signature tidak akan cocok lagi dan server mana pun yang memverifikasi dengan key yang benar akan menolak token tersebut. Serangan klasik alg: none membobol ini dengan mengklaim tidak ada algoritma yang dipakai — kerentanan yang sudah dikenal (CVE-2015-9235) yang seharusnya diblokir oleh pustaka JWT produksi mana pun. Tool ini menandai token none dan menolak menyebutnya valid.
Jaga masa berlaku token tetap singkat memakai exp, kirim lewat HTTPS, simpan di memori atau cookie httpOnly (bukan localStorage), dan verifikasi signature pada setiap permintaan. Decode dan periksa token Anda dengan tool gratis ini untuk memastikan properti tersebut ditetapkan dengan benar sebelum deploy ke produksi.
Spesifikasi JWT: RFC 7519 dan cara kerja tiga bagiannya
RFC 7519, dipublikasikan tahun 2015 oleh IETF, adalah spesifikasi normatif untuk JSON Web Token. Ia mendefinisikan sebuah token sebagai tiga segmen berenkoding Base64URL yang dipisahkan titik — header.payload.signature — di mana Base64URL adalah varian Base64 yang aman untuk URL yang mengganti + dengan -, / dengan _, dan menghapus padding karakter = sehingga token bisa disematkan dalam query string URL tanpa encoding tambahan. Header adalah objek JSON yang mendeklarasikan tipe token (typ: "JWT") dan algoritma penandatanganan (alg): algoritma simetris seperti HS256 (HMAC-SHA-256) atau asimetris seperti RS256 (RSA-SHA-256) atau ES256 (ECDSA-P256).
Payload membawa claim — pernyataan tentang subjek. RFC 7519 membedakan tiga kategori. Registered claims adalah tujuh field standar: iss (issuer — siapa yang membuat token), sub (subject — biasanya user ID), aud (audience — layanan penerima yang dituju), exp (expiration — timestamp Unix setelah mana token harus ditolak), nbf (not-before — token tidak valid sebelum waktu ini), iat (issued-at — kapan token dibuat), dan jti (ID token unik untuk pencegahan replay). Public claims adalah nama yang terdaftar di IANA JSON Web Token Claims Registry untuk menghindari tabrakan. Private claims adalah field khusus aplikasi kustom — role, tenant ID, tier paket, atau data lain apa pun yang dibutuhkan sistem Anda — yang disepakati antara penerbit dan konsumen.
Signature dihitung dari string ASCII base64url(header) + '.' + base64url(payload). Untuk HS256, server melakukan hash string tersebut dengan shared secret memakai HMAC-SHA-256. Untuk RS256, server menandatanganinya dengan private key RSA, dan pihak mana pun yang memegang public key yang sesuai bisa memverifikasi signature tanpa mengetahui private key-nya. Asimetri inilah yang membuat RS256 cocok untuk identitas federasi: penyedia identitas (IdP) menandatangani token dengan private key-nya, dan setiap API dalam organisasi bisa memverifikasinya dengan public key yang dipublikasikan — tanpa perlu distribusi secret.
Kerentanan alg:none — mengapa Anda tidak boleh pernah memercayai header
Pada 2015 peneliti keamanan Tim McLean mengungkap cacat kritis yang memengaruhi banyak pustaka JWT: banyak implementasi membaca field alg dari header token untuk memutuskan cara memverifikasi signature. Penyerang bisa merancang token dengan "alg": "none" di header, menghapus signature sepenuhnya, mengubah payload untuk menaikkan role mereka menjadi admin, dan meng-encode ulang header serta payload. Pustaka yang menghormati nilai alg: none akan melewati verifikasi signature — menyelesaikan langkah verifikasi dengan hasil sukses meski tidak ada signature yang hadir. Ini dikatalogkan sebagai CVE-2015-9235 dan memengaruhi pustaka JWT Node.js, Python, PHP, Ruby, dan Java dari era itu.
Varian serangan terkait menargetkan kebingungan algoritma antara RS256 dan HS256. Jika server mengharapkan RS256 (asimetris, memverifikasi dengan public key) tapi penyerang mengirim token dengan alg: HS256, beberapa pustaka beralih ke verifikasi simetris — memakai public key sebagai secret HMAC. Karena public key, secara definisi, diketahui publik, penyerang bisa menandatangani sendiri token palsu tersebut dan server akan memverifikasinya sebagai asli. Pelajaran intinya sama: algoritma yang dipakai untuk verifikasi harus ditetapkan di sisi server, bukan dibaca dari header token yang tidak dipercaya.
Pustaka JWT modern yang terpelihara dengan baik (python-jose, jsonwebtoken ≥ 9, java-jwt, nimbus-jose-jwt) mengharuskan pemanggil menentukan algoritma yang diharapkan secara eksplisit dan akan melempar error jika alg token berbeda. Opsi alg: none dinonaktifkan secara default dan harus diaktifkan secara sengaja dengan sebuah flag — perubahan signifikan dari desain pustaka awal. Saat meninjau implementasi JWT, selalu pastikan bahwa parameter algorithms (atau yang setara) di-hardcode dan tidak diturunkan dari header token yang masuk. Decoder ini menandai token alg: none sebagai tidak terverifikasi untuk membuat risikonya terlihat saat debugging.
JWT vs session cookie — token stateless dan masalah revokasi
Autentikasi web tradisional memakai session cookie: server menghasilkan session ID acak, menyimpan state sesi (user ID, role, preferensi) dalam database atau cache seperti Redis, dan mengirim hanya session ID ke browser sebagai cookie. Setiap permintaan berikutnya membuat server mencari session ID tersebut di penyimpanan untuk mengambil state pengguna. Model ini stateful: server memegang kebenaran. Invalidasi bersifat instan — hapus record sesi dan cookie tersebut menjadi tidak berguna pada permintaan berikutnya. Kekurangannya adalah skalabilitas: setiap permintaan membutuhkan round-trip database, dan server yang di-scale secara horizontal butuh penyimpanan sesi bersama agar node mana pun bisa mencari sesi mana pun.
JWT bersifat stateless: token ITU-lah sesinya. Server menyematkan identitas dan izin pengguna langsung ke dalam payload yang ditandatangani secara kriptografis dan mengirimkannya ke klien. Pada permintaan berikutnya klien mengirim token kembali, dan server mana pun yang tahu signing key (atau public key untuk RS256) bisa memverifikasi dan membacanya tanpa menyentuh database. Ini berarti armada microservice bisa memvalidasi token secara independen tanpa lookup auth terpusat — ideal untuk arsitektur terdistribusi. Scaling horizontal jadi trivial karena tidak ada state bersama yang perlu disinkronkan.
Harga dari statelessness adalah masalah revokasi. JWT valid sampai timestamp exp-nya terlepas dari apa yang terjadi di server. Jika pengguna logout, token mereka tetap valid. Jika akun admin diretas dan pengguna dinonaktifkan di database, JWT mereka tetap mengautentikasi permintaan sampai kedaluwarsa. Mitigasi umum meliputi menjaga masa berlaku access token tetap singkat (15 menit adalah default yang umum) dipasangkan dengan refresh token berumur lebih panjang yang disimpan di sisi server dan bisa direvokasi, menambahkan claim generation atau tokenVersion ke JWT dan memeriksanya terhadap database pada setiap permintaan (yang memunculkan kembali panggilan database tapi hanya untuk satu skalar itu), atau memelihara daftar blokir token untuk operasi berisiko tinggi seperti reset password dan pencabutan hak akses. Untuk sebagian besar aplikasi konsumen, JWT berumur pendek dengan rotasi refresh token memberikan keseimbangan yang tepat.
OAuth 2.0, OpenID Connect, dan peran JWT dalam identitas modern
OAuth 2.0 (RFC 6749) adalah kerangka otorisasi — ia mendefinisikan bagaimana pengguna memberikan akses terbatas ke data mereka di layanan lain kepada aplikasi pihak ketiga, tapi tidak mengatakan apa pun tentang format token. Access token OAuth bisa berupa string acak opaque atau JWT; itu terserah server otorisasi. OpenID Connect (OIDC) adalah lapisan autentikasi yang dibangun di atas OAuth 2.0 yang memang mewajibkan JWT: id_token. ID token berisi claim OIDC yang terdaftar (sub, iss, aud, iat, exp, nonce) dan di-decode oleh aplikasi klien untuk mengetahui siapa yang terautentikasi — identitas pengguna. Access token dikirim ke API resource untuk mengotorisasi aksi; ID token dikonsumsi oleh relying party untuk menetapkan identitas. Mencampuradukkan keduanya (mengirim ID token ke API, atau men-decode access token dengan mengharapkan data profil pengguna) adalah sumber bug autentikasi halus yang umum.
Semua penyedia identitas utama memakai OIDC dan menerbitkan JWT RS256 atau ES256: Google Identity, Microsoft Azure AD, Auth0, Okta, Keycloak, AWS Cognito, Firebase Authentication, dan Supabase Auth. Masing-masing mempublikasikan endpoint JWKS (JSON Web Key Set) — URL publik yang mengembalikan kumpulan public key saat ini dalam format JSON standar. Header JWT membawa claim kid (Key ID) yang mengidentifikasi key mana dalam JWKS yang dipakai untuk menandatangani token. Layanan yang melakukan verifikasi mengambil JWKS, mencari key yang cocok berdasarkan kid, dan memverifikasi signature. Mekanisme rotasi key ini memungkinkan penyedia memutar signing key mereka tanpa membatalkan semua token yang beredar — key lama tetap ada di JWKS sampai token yang ada kedaluwarsa, dan token baru ditandatangani dengan key baru.
OAuth 2.0 mendefinisikan beberapa alur grant untuk kasus pemakaian berbeda. Authorization Code Flow dipakai oleh aplikasi web sisi server — server menukar kode berumur pendek dengan token, menjaga access token tetap di luar browser. Authorization Code dengan PKCE (Proof Key for Code Exchange, RFC 7636) memperluas ini ke aplikasi single-page dan mobile, menambahkan tantangan-respons kriptografis untuk mencegah serangan interception authorization code; OAuth 2.1 mewajibkan PKCE untuk semua klien publik. Client Credentials Flow untuk autentikasi mesin-ke-mesin — sebuah layanan mengautentikasi langsung dengan client ID dan secret dan menerima access token yang di-scope ke izin tingkat layanan, tanpa pengguna terlibat. Memahami alur mana yang menerbitkan sebuah token — dan karenanya claim mana yang diharapkan — adalah konteks penting saat men-decode dan men-debug JWT dari berbagai bagian sistem.
Frequently asked questions
Apa itu JWT (JSON Web Token)?
JWT adalah cara ringkas dan aman-URL untuk membawa informasi yang ditandatangani antara dua pihak — paling sering token login. Ia terdiri dari tiga bagian Base64URL yang digabung dengan titik: header.payload.signature. Header menyebutkan algoritma penandatanganan, payload menyimpan claim (data), dan signature memungkinkan penerima memastikan token tidak diubah. JWT dipakai oleh OAuth 2.0, OpenID Connect, Auth0, Firebase, Supabase, AWS Cognito, dan sebagian besar sistem autentikasi modern. Mereka menggantikan session cookie di banyak arsitektur karena bersifat stateless — server tidak perlu menyimpan data sesi.
Bagaimana cara men-decode JWT?
Pisahkan token pada dua titik dan decode Base64URL dua bagian pertama. Header dan payload adalah JSON polos setelah di-decode; bagian ketiga (signature) tetap biner. Tool ini melakukannya secara instan — tempel token dan header serta payload yang sudah di-decode muncul dalam format rapi, dengan signature ditampilkan terpisah. Tidak ada yang dikirim ke mana pun; decoding berjalan di browser Anda. Anda tidak butuh secret atau private key untuk men-decode JWT — decoding hanya membutuhkan token itu sendiri.
Amankah men-decode JWT secara online?
Dengan tool ini, ya — setiap byte di-decode secara lokal di browser Anda memakai JavaScript, dan token Anda tidak pernah menyentuh server, log, atau permintaan jaringan. jwt.io, tool JWT online yang paling dikenal luas, dioperasikan oleh Auth0 (kini Okta) dan mengirim token Anda ke server mereka dalam beberapa mode pemakaian. Tool ini memproses semuanya sisi klien tanpa backend dan tanpa pelacakan analitik pada konten token. Meski begitu, JWT tetaplah sebuah kredensial: jangan tempel token produksi yang aktif ke situs mana pun yang tidak Anda percayai, karena siapa pun yang menangkapnya bisa menyamar sebagai Anda sampai token itu kedaluwarsa.
Apa isi sebuah JWT?
Tiga bagian. Header adalah JSON yang mendeskripsikan tipe dan algoritma penandatanganan, misalnya {"alg":"HS256","typ":"JWT"}. Payload adalah JSON yang menyimpan claim — baik yang terdaftar (sub, exp, iat…) maupun data kustom apa pun seperti role atau ID pengguna. Signature adalah hash berkunci dari header dan payload yang membuktikan keduanya tidak diubah. Hanya signature yang membutuhkan secret atau key; header dan payload hanya berenkoding Base64URL, bukan dienkripsi. Siapa pun dengan token bisa membaca payload-nya, itulah mengapa Anda tidak boleh pernah menaruh password atau secret di dalamnya.
Apa saja claim standar JWT?
RFC 7519 mendefinisikan tujuh claim terdaftar: iss (issuer), sub (subject — biasanya ID pengguna), aud (audience — untuk siapa token ini ditujukan), exp (waktu kedaluwarsa), nbf (waktu not-before), iat (waktu diterbitkan), dan jti (ID token unik). Tiga claim waktu adalah timestamp Unix dalam detik — tool ini mengonversinya ke tanggal dan waktu lokal Anda serta menunjukkan sudah berapa lama atau berapa jauh ke depan. Claim kustom seperti email, role, atau permissions berada di luar RFC tapi umum di JWT Auth0, Firebase, dan Supabase.
Bagaimana cara memeriksa apakah JWT sudah kedaluwarsa?
Baca claim exp — timestamp Unix dalam detik. Jika exp lebih awal dari waktu saat ini, token sudah kedaluwarsa dan harus ditolak. Decoder ini mengonversi exp ke tanggal yang mudah dibaca, menampilkan waktu relatif seperti 'kedaluwarsa 3 jam lalu' atau 'kedaluwarsa dalam 59 menit,' dan menandai token Valid atau Expired secara otomatis, sehingga Anda tidak perlu mengonversi detik epoch secara manual. Ini alasan paling umum seorang developer membuka tool JWT: untuk memastikan apakah token yang kedaluwarsa adalah penyebab respons 401 Unauthorized. jwt.io menampilkan timestamp mentah tapi tidak menandai status kedaluwarsa secara otomatis.
Bagaimana cara memverifikasi signature JWT?
Decode header untuk membaca alg, lalu hitung ulang signature dari header.payload dan bandingkan. Untuk HS256/384/512 Anda butuh shared secret; untuk RS256, PS256 atau ES256 Anda butuh public key penerbit dalam format PEM. Tool ini memverifikasi semuanya secara lokal dengan Web Crypto API — pilih algoritma yang cocok, tempel secret atau public key, dan tool ini melaporkan apakah signature-nya asli. jwt.io juga memverifikasi signature tapi mengirim token dan key Anda ke server Auth0 dalam beberapa konfigurasi — tool ini tidak pernah begitu.
Apa bedanya HS256 dan RS256?
HS256 bersifat simetris: satu shared secret menandatangani dan memverifikasi, jadi semua orang yang bisa memverifikasi juga bisa memalsukan token — cocok di dalam satu layanan tepercaya di mana kedua sisi dikontrol oleh Anda. RS256 (dan ES256) bersifat asimetris: private key menandatangani dan public key terpisah memverifikasi. Anda bisa memberikan public key ke berapa pun klien untuk memeriksa token tanpa pernah mengekspos signing key, itulah mengapa RS256 menjadi default untuk penyedia OAuth/OIDC seperti Auth0, Okta, Google, dan Microsoft Azure AD. Jika Anda membangun microservice yang memvalidasi token dari IdP eksternal, Anda hampir selalu akan berurusan dengan RS256.
Bisakah saya men-decode JWT tanpa secret?
Ya. Decoding hanya membaca header dan payload berenkoding Base64URL, yang tidak membutuhkan key apa pun — itulah mengapa Anda tidak boleh pernah menaruh secret dalam payload JWT. Secret atau public key hanya dibutuhkan untuk memverifikasi signature, yaitu untuk membuktikan token itu asli dan tidak diubah. Decoding memberi tahu Anda apa yang diklaim sebuah token; verifikasi memberi tahu Anda apakah harus memercayainya. Perbedaan ini membingungkan banyak developer yang mengira bahwa karena token 'terlihat terenkripsi,' Anda butuh key untuk membacanya — tidak begitu.
Apakah men-decode JWT mengungkap data sensitif?
Bisa. Payload berenkoding Base64URL, bukan dienkripsi — siapa pun dengan token bisa membaca setiap claim dalam teks polos dalam waktu sekitar satu detik. Jadi jangan pernah menyimpan password, API key, nomor kartu kredit, atau data pribadi rahasia dalam payload JWT. Taruh hanya pengenal yang tidak sensitif di sana (ID pengguna, role, email), jaga masa berlaku token tetap singkat lewat exp, dan gunakan HTTPS agar token tidak dicegat saat transit. JWT ditandatangani untuk integritas, bukan dienkripsi untuk kerahasiaan — jika Anda perlu menjaga payload tetap rahasia, gunakan JWE (JSON Web Encryption) alih-alih JWT biasa.
Bagaimana cara membuat atau meng-encode JWT?
Beralih ke tab Encode, edit JSON header dan payload, pilih HS256/384/512, masukkan secret, dan tool ini menandatangani token dengan HMAC lewat Web Crypto dan menghasilkan string header.payload.signature siap salin. Tombol cepat menambahkan iat (diterbitkan sekarang) dan exp (satu jam ke depan) untuk Anda. Seperti semua di sini, penandatanganan terjadi sepenuhnya di browser Anda — secret Anda tidak pernah meninggalkan halaman. Ini berguna untuk menghasilkan token uji dalam pengembangan ketika server auth Anda tidak tersedia, atau saat men-debug konfigurasi claim tertentu.
Mengapa JWT saya invalid?
Penyebab umumnya: string bukan tiga bagian yang dipisahkan titik (copy-paste memotong signature-nya), header atau payload bukan JSON Base64URL yang valid (sering karena spasi liar, baris baru, atau karakter kutip yang rusak saat ditempel dari terminal), alg tidak cocok dengan key yang Anda pakai untuk verifikasi, atau exp sudah lewat sehingga token kedaluwarsa. Decoder ini menunjukkan tepat yang mana dari ini alih-alih hanya bilang 'token invalid'. Ia juga menyoroti bagian spesifik mana dari token yang gagal di-parsing, membuat debugging lebih cepat daripada pesan error generik jwt.io.
Algoritma apa saja yang bisa diverifikasi JWT decoder ini?
Verifikasi signature mendukung set mainstream lengkap: HMAC (HS256, HS384, HS512) dengan shared secret, RSA (RS256/384/512 dan PS256/384/512) dengan public key PEM, dan ECDSA (ES256, ES384, ES512) dengan public key PEM. Ia memakai Web Crypto API native milik browser, jadi verifikasinya adalah kriptografi nyata yang berjalan di perangkat keras Anda — bukan lookup yang disederhanakan. Ini mencakup semua algoritma yang dipakai Auth0, Okta, Firebase, Supabase, AWS Cognito, dan Azure AD, dan tier gratisnya memverifikasi semuanya tanpa mengharuskan upgrade akun.
Apa arti 'alg: none' dan amankah itu?
alg: none berarti token tidak ditandatangani — tidak ada signature untuk diperiksa. Ini ada dalam spek untuk token yang sudah dilindungi dengan cara lain (misalnya dikirim dalam sesi ber-otentikasi TLS), tapi ini adalah vektor serangan klasik: jika server tertipu menerima 'none,' penyerang bisa memalsukan payload apa pun dengan mengedit JSON dan meng-encode ulang tanpa key. Ini adalah CVE-2015-9235 dalam praktik. Jangan pernah memercayai JWT yang tidak ditandatangani untuk autentikasi. Tool ini menandai token none dan menolak menandainya terverifikasi.
Bagaimana ini dibandingkan dengan jwt.io?
jwt.io adalah tool referensi dari Auth0 (kini Okta) dan sangat dipercaya, tapi punya dua kekurangan: ia mengirim token Anda ke backend Auth0 dalam beberapa konfigurasi, dan membutuhkan upgrade akun untuk memverifikasi token RS256/ES256 dengan PEM key. Tool ini memverifikasi semua algoritma standar (HS256, RS256, ES256, dan varian 384/512-nya) sepenuhnya di browser Anda tanpa server terlibat dan tanpa akun dibutuhkan. Ia juga mengonversi claim timestamp ke tanggal yang mudah dibaca dan menandai token kedaluwarsa secara otomatis — langkah yang harus Anda lakukan secara manual di jwt.io.
Apakah tool ini bekerja di iPhone dan Android?
Ya. Decoder dan encoder-nya keduanya berjalan di browser mobile modern apa pun — Safari di iPhone, Chrome di Android, Firefox Mobile, dan Samsung Internet. Tempel JWT Anda ke field input dan header, payload, serta tabel claim yang sudah di-decode langsung muncul di layar. Antarmukanya menyesuaikan diri ke layar kecil sehingga Anda bisa membaca claim tanpa scroll horizontal. Tidak perlu download aplikasi, dan token Anda tetap di perangkat Anda sepanjang waktu.
Related tools
Lihat semua perkakasValidator Kartu Kredit
Periksa nomor kartu dengan algoritme Luhn dan deteksi mereknya.
Generator Frasa Sandi
Buat frasa sandi berbasis kata yang mudah diingat dengan generator acak yang aman.
Generator Hash
Hitung hash MD5, SHA-1, dan SHA-256 secara lokal.
Pemeriksa Kekuatan Kata Sandi
Uji kekuatan kata sandi dengan entropi, perkiraan waktu pembobolan, dan tips.
Enkripsi / Dekripsi Teks
Enkripsi dan dekripsi pesan dengan AES-256 menggunakan frasa sandi, sepenuhnya di peramban Anda.
Tax Bracket Calculator
See your 2024 US federal income tax bracket, effective rate and marginal rate — for any filing status.