Decoder JWT
Masukkan JWT (terdiri dari tiga bagian yang dikodekan menggunakan format base64url dan dipisahkan oleh titik). Dekoder akan menampilkan header, payload, dan signature, yang telah didekode serta dicetak secara rinci, serta algoritma yang terdeteksi, tanggal kedaluwarsa token berdasarkan waktu lokal, serta apakah nilai nbf (not-before), iat (issued-at), dan exp (expiry) konsisten. Verifikasi signature dapat dilakukan secara opsional jika Anda memiliki kunci rahasia atau kunci publik.
Cara mendekode JWT
-
1
Tempel token
Tiga string base64url yang dipisahkan oleh `.` (header.payload.signature).
-
2
Baca header yang telah didekode
Algoritma, jenis, dan ID kunci (`kid`). Algoritma menunjukkan jenis kunci yang diperlukan untuk verifikasi.
-
3
Baca payload
Klaim standar (`iss`, `sub`, `aud`, `exp`, `iat`, `nbf`, `jti`) ditambah klaim khusus apa pun yang dikeluarkan oleh aplikasi Anda.
-
4
Verifikasi (opsional)
Sediakan rahasia HMAC (untuk HS256/384/512) atau kunci publik (untuk RS256, ES256, dll.) untuk memastikan tanda tangan tersebut sah.
Anatomi JWT
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
.
eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkFsaWNlIiwiaWF0IjoxNjAwMDAwMDAwfQ
.
SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
Setiap segmen dikodekan menggunakan format base64url (bukan base64 standar). Bagian header berformat JSON seperti {"alg":"HS256","typ":"JWT"}, payload berformat JSON seperti {"sub":"1234567890","name":"Alice","iat":1600000000}, sedangkan tanda tangan merupakan hasil enkripsi HMAC atau RSA dari header.payload.
Klaim Standar (RFC 7519)
| Klaim | Nama | Catatan |
|---|---|---|
iss |
Penerbit | Pihak yang menerbitkan token |
sub |
Subjek | Tentang siapa token tersebut |
aud |
Audiens | Untuk siapa token ditujukan |
exp |
Waktu kedaluwarsa | Tanda waktu Unix; ditolak setelah waktu ini |
nbf |
Tidak sebelum | Tanda waktu Unix; ditolak sebelum waktu ini |
iat |
Diterbitkan pada | Tanda waktu Unix saat token dibuat |
jti |
ID JWT | Pengenal unik untuk daftar pencabutan |
Algoritma yang Didukung
Nilai alg |
Jenis kunci |
|---|---|
HS256/HS384/HS512 |
Rahasia HMAC bersama |
RS256/RS384/RS512 |
Kunci publik RSA |
ES256/ES384 |
Kunci publik ECDSA |
PS256/PS384 |
Kunci publik RSA-PSS |
EdDSA / Ed25519 |
Kurva Edwards |
none |
Jangan pernah memercayai ini, token tanpa tanda tangan |
Jebakan alg: none
Pustaka JWT versi awal mengizinkan token "alg": "none" dan secara naif menerimanya sebagai valid. Selalu:
- Masukkan algoritma yang diterima aplikasi Anda ke dalam daftar putih.
- Tolak
alg: nonetanpa syarat. - Tolak
alg: HS256jika kode verifikasi Anda mengharapkanRS256(serangan “kekeliruan algoritma”).
Apa yang Bukan JWT
- Tidak dienkripsi. Bagian header dan payload dikodekan dengan base64, yang sangat mudah didekode. Jangan pernah menaruh rahasia dalam JWT tanpa membungkusnya dengan JWE.
- Tidak dapat dicabut secara default. Setelah diterbitkan, JWT tetap berlaku hingga
exp. Untuk pencabutan, Anda memerlukan daftar hitam atau masa berlaku singkat plus token penyegaran. - Bukan pengganti cookie sesi untuk setiap kasus penggunaan. Token buram yang disimpan di sisi server sering kali lebih sederhana dan lebih aman.
Kesalahan Umum
- Memercayai header. Nilai
kiddanalgberasal dari token itu sendiri. Server yang disusupi dapat menetapkannya secara sembarangan; selalu validasi terhadap daftar tetap. - Mengabaikan selisih
nbfdaniat. Pergeseran jam dapat menyebabkaniat > now. Berikan toleransi kecil (30–60 detik). - Mencatat seluruh JWT. Payload sering kali berisi ID pengguna, alamat email, dan izin, PII yang seharusnya tidak muncul di stdout.
- Menggunakan HS256 dengan rahasia yang lemah. Rahasia sepanjang 16 karakter dapat dibobol dengan brute-force dalam hitungan menit. Gunakan setidaknya 256 bit entropi acak.
Pertanyaan yang Sering Diajukan
Tidak. Proses dekoding berjalan di dalam peramban Anda. Token tetap tersimpan secara lokal, ini sangat penting karena JWT umumnya mengandung data sesi, ID pengguna, dan izin akses.
Ya. Jika Anda menempelkan rahasia HMAC yang telah dibagikan atau kunci publik yang dikodekan menggunakan format PEM, proses verifikasi akan dilakukan di peramban Anda. Kunci tersebut tidak pernah keluar dari mesin Anda.
Hal ini berarti token tersebut tidak memiliki tanda tangan (unsigned). Jangan pernah menerima token semacam ini dalam lingkungan produksi, karena dapat dengan mudah dipalsukan. Beberapa kerentanan tingkat tinggi (CVE) secara khusus terkait pustaka yang secara default menerima format alg: none.
Penandatanganan menggunakan JWT membuktikan keaslian data, bukan kerahasiaannya. Bagian header dan payload dikodekan menggunakan format Base64 URL yang dapat dibalikkan. Untuk memastikan kerahasiaan, gunakan metode enkripsi JWE (JSON Web Encryption) pada struktur JWT, atau hindari menyimpan data sensitif dalam payload.
Alat Terkait
Referensi Tabel ASCII
Tabel ASCII lengkap dari 0 sampai 127 dengan desimal, heksadesimal, oktal, biner, dan referensi karakter numerik HTML untuk setiap karakter, termasuk kode kontrol seperti NUL, LF, dan DEL.
Referensi Karakter HTML
Daftar entitas HTML yang dapat dicari, beserta kode bernama dan kode numeriknya, serta fitur salin dengan satu klik untuk karakter khusus dan simbol.
Referensi pintasan papan ketik
Cari pintasan bawaan terdokumentasi untuk VS Code, Chrome, dan Bash dengan GNU Readline di macOS, Windows, dan Linux.
Generator EditorConfig
Buat file .editorconfig dengan gaya dan ukuran indentasi, akhir baris, charset, dan aturan spasi Anda untuk format yang konsisten di berbagai IDE dan editor.
Validator Email
Validasi alamat email: pemeriksaan sintaks RFC 5322, pengecekan live record MX, serta detail bagian lokal, domain, dan panjang. Tidak ada email yang dikirim.
Pemformat HTML
Format HTML secara lokal di browser dengan inden dua atau empat spasi. HTML tidak diunggah atau divalidasi.
Alat ini tersedia dalam bahasa lain
- Mã giải mã JWT [VI]
- Decodificador JWT [ES]
- مُفكّك JWT [AR]
- Décodeur JWT [FR]
- JWTデコーダ [JA]
- JWT 해독기 [KO]
- JWT-decoder [NL]
- Decodificador JWT [PT]
- JWT-avkodare [SV]
- JWT-Dekoder [DE]
- ตัวถอดรหัส JWT [TH]
- Dekoder JWT [PL]
- JWT Decoder [EN]
- Decoder JWT [IT]
- Декодировщик JWT [RU]
- JWT Dekoderi [TR]
- JWT 解码器 [ZH]