Decode JWT: baca dan verifikasi JSON Web Token
Untuk decode JWT, tempel tokennya: alat ini menampilkan isi JSON Web Token – header, payload, dan tanda tangan, lengkap dengan penerbit, masa berlaku, dan keabsahannya dalam bahasa yang jelas. Jika Anda memasukkan secret atau kunci publik, tanda tangan pun bisa diverifikasi. Token tidak keluar dari browser Anda.
Sumber: §§ 2, 4.1 (Claims, NumericDate), IETF RFC 7519 – JSON Web Token (JWT). Diperbarui: .
Cara menghitung
JSON Web Token (JWT) membawa pernyataan (claim) antara dua pihak – biasanya setelah login, sebagai bukti bahwa “pengguna ini sudah masuk”. Terdiri dari tiga bagian yang dipisah titik: header.payload.tanda tangan (RFC 7519, RFC 7515).
Cara decode JWT
- Tempel token ke kolom atas (dengan atau tanpa “Bearer”).
- Header dan payload langsung muncul sebagai JSON yang terbaca, dengan masa berlaku dan penerbit di bawahnya.
- Opsional: masukkan kunci di “Secret atau kunci publik”, lalu alat ini memverifikasi tanda tangan.
Isi token
- Header: algoritma (
alg, mis. HS256 atau RS256) dan jenis (typ). - Payload: claim. Yang terdaftar antara lain
iss(penerbit),sub(subjek),aud(audiens),exp(kedaluwarsa),nbf(tidak sebelum),iat(diterbitkan pada), danjti(ID). Waktu berupa detik sejak 1970; alat ini menampilkannya sebagai tanggal UTC. - Tanda tangan: melindungi dari perubahan jika penerima memeriksanya dengan kunci yang tepat.
Penting: membaca bukan memverifikasi
Header dan payload hanya dikodekan base64url, tidak dienkripsi. Siapa pun yang melihat token dapat membacanya – kata sandi atau rahasia lain tidak boleh ada di dalamnya. Tanpa pemeriksaan tanda tangan, isi tidak membuktikan apa pun karena siapa saja bisa mengubahnya. Verifikasi di sini bekerja dengan secret HMAC (HS256/384/512) dan kunci publik (RS, PS, ES); token dengan alg: none tidak bertanda tangan.
Perlindungan dari algorithm confusion
Serangan yang dikenal memberi server token alg: HS256 yang ditandatangani dengan kunci publik sebagai secret. Karena itu alat ini menolak verifikasi bila kunci publik atau privat dimasukkan sebagai secret HS (RFC 8725 menyarankan agar algoritma tidak pernah diambil dari token saja).
Batasan
- Token terenkripsi (JWE, lima bagian) tidak dapat dibaca tanpa kunci; hanya header yang ditampilkan.
- Verifikasi untuk EdDSA dan sertifikat tidak tersedia. Apakah token sah untuk aplikasi Anda bergantung pada penerbit, audiens, dan masa berlaku, yang harus diperiksa sendiri oleh server Anda.
- Token produksi hanya untuk perangkat yang Anda percaya. Di sini tidak ada yang dikirim atau disimpan, tetapi token uji atau yang sudah kedaluwarsa lebih aman.
Pertanyaan umum
Apa itu JWT?
JSON Web Token adalah string ringkas yang aman untuk URL dengan tiga bagian (header, payload, tanda tangan). Ia membawa claim seperti ID pengguna atau masa berlaku dan sering dipakai sebagai bukti akses setelah login.
Apakah siapa pun bisa membaca isi JWT?
Ya. Header dan payload hanya dikodekan base64url, tidak dienkripsi. Hanya tanda tangan yang melindungi dari perubahan, bukan dari pembacaan. Jadi jangan simpan rahasia di dalam JWT.
Bagaimana memverifikasi tanda tangan JWT?
Di “Secret atau kunci publik”, masukkan secret untuk HS256/384/512, atau kunci publik dalam PEM atau JWK untuk RS256, PS256, atau ES256. Hasilnya muncul di “Tanda tangan”.
Amankah menempel token ke decoder online?
Decoder ini bekerja sepenuhnya di browser Anda dan tidak mengirim apa pun. Meski begitu, token yang valid adalah bukti akses. Gunakan token uji atau yang sudah kedaluwarsa bila bisa.
Apa arti exp, iat, dan nbf?
exp adalah saat token kedaluwarsa, iat saat diterbitkan, dan nbf saat token mulai berlaku. Ketiganya berupa detik sejak 1 Januari 1970 UTC.
Mengapa alat ini menulis “belum diverifikasi”?
Tanpa kunci tidak ada yang bisa dipakai untuk memeriksa tanda tangan, sehingga isi hanya dibaca. Algoritma yang tidak didukung atau format kunci yang tidak cocok juga melewati pemeriksaan.
Sumber dan dasar hukum
- §§ 2, 4.1 (Claims, NumericDate): IETF RFC 7519 – JSON Web Token (JWT)
- §§ 3, 7.1, Anhang A.1 (Testbeispiel HS256): IETF RFC 7515 – JSON Web Signature (JWS)
- § 3 (HS, RS, ES, PS): IETF RFC 7518 – JSON Web Algorithms (JWA)
- §§ 2.1, 3.1 (Algorithmus-Verwechslung, Algorithmus pruefen): IETF RFC 8725 – JSON Web Token Best Current Practices
- W3C Web Cryptography API (SubtleCrypto.verify)
Diperbarui: · Kebijakan editorial
Alat terkait
- Base64 decode dan encode onlineBase64 decode dan encode online, termasuk Base64url dengan UTF-8 yang benar, serta URL encode/decode (percent-encoding). Pesan error jelas, berjalan di browser.
- Hash generator: SHA-256, SHA-512, SHA-1, MD5Hitung hash SHA-256, SHA-384, SHA-512, SHA-1 dan MD5 dari teks atau file dan cocokkan checksum – langsung di browser, tanpa upload, gratis.
- JSON formatter, validator, dan minifyJSON formatter online: validasi JSON sesuai RFC 8259, lihat error lengkap dengan baris, kolom, dan penjelasannya. Rapikan, minify, urutkan key – di browser.
- Unix timestamp converter: timestamp ke tanggalKonversi Unix timestamp ke tanggal dan sebaliknya. Detik, milidetik, mikro- dan nanodetik dikenali otomatis; UTC, WIB/waktu lokal, ISO 8601 dan lainnya.
- UUID generator: buat dan validasi UUID v4 dan v7UUID generator online: buat UUID versi 4 (acak) atau versi 7 (urut waktu), hingga 1.000 sekaligus. Validasi UUID dan baca versi, varian serta waktunya.
- Generator passwordBuat password acak yang kuat dan passphrase yang mudah diingat, lengkap dengan entropi dalam bit – dihitung di browser Anda, tidak dikirim dan tidak disimpan.
- Cek IP address sayaCek IP address Anda secara instan: menampilkan IP publik Anda, mendeteksi apakah IPv4 atau IPv6, dan menjelaskan bedanya. Gratis, IP Anda tidak disimpan.
- Kombinasi font – pasangan font untuk judul dan teksKombinasi font untuk judul dan teks: pratinjau langsung, CSS siap salin, dan ketersediaan di Windows, Mac, iPhone, dan Android – hanya memakai font sistem.
- Konverter IEEE 754Konverter IEEE 754 untuk half, single, dan double: ubah desimal, heksadesimal, atau bit, lalu lihat tanda, eksponen, mantisa, dan nilai tersimpan yang tepat.