Decoder JWT (header, payload, tanda tangan, kedaluwarsa)
Tempel JWT untuk langsung mendecode header dan payload sebagai JSON. Mengenali klaim standar (iat, exp, nbf) dan mengonversi timestamp Unix ke ISO 8601. Menandai token yang kedaluwarsa atau belum valid.
Di-decode sepenuhnya di browser Anda. Token tidak pernah berjalan melalui jaringan.
Header
{
"alg": "HS256",
"typ": "JWT"
}Payload
{
"sub": "1234567890",
"name": "Jane Doe",
"iat": 1730000000,
"exp": 4886000000
}- Tanda tangan ada
- โ
- Diterbitkan pada (iat)
- 2024-10-27T03:33:20.000Z
- Kedaluwarsa pada (exp)
- 2124-10-30T22:13:20.000Z
Cara kerjanya
Bagaimana JWT terlihat
JWT adalah tiga segmen yang dienkode Base64url, digabungkan dengan titik: header.payload.signature. Setiap segmen adalah objek JSON yang dienkode untuk transmisi yang aman di URL. Header mendeklarasikan algoritma penandatanganan, payload membawa klaim (subjek, kedaluwarsa, data kustom), dan tanda tangan memungkinkan penerima memverifikasi integritas jika mereka memiliki kunci.
Decoder ini hanya membaca dua segmen pertama. Tanda tangan adalah segmen ketiga tetapi memverifikasinya memerlukan kunci rahasia/publik โ itu adalah operasi terpisah yang tidak kami lakukan di sini.
Klaim standar yang perlu diketahui
iss (issuer): siapa yang membuat token. iat (issued at): kapan, sebagai timestamp Unix. exp (expiry): kapan berhenti valid, juga Unix. nbf (not before): waktu paling awal yang harus dihormati. sub (subject): entitas yang diwakilinya, seringkali ID pengguna. aud (audience): untuk siapa token, biasanya URL layanan.
Tidak semua wajib; JWT minimal seringkali hanya memiliki sub + iat + exp. Klaim kustom adalah hal lain โ mereka hidup berdampingan dengan yang standar dalam payload.
Mengapa decoding โ verifikasi
Siapapun dapat mendecode JWT โ header dan payload hanyalah JSON yang dienkode Base64. Itulah mengapa kami mengatakan 'jangan pernah menyimpan rahasia di payload': mereka pada dasarnya publik.
Verifikasi berarti memeriksa tanda tangan terhadap kunci rahasia (HMAC) atau kunci publik (RSA/ECDSA). Tanpa verifikasi, Anda tidak dapat mempercayai klaim apapun di dalam payload โ penyerang dapat membuat payload apapun yang mereka inginkan.
Gunakan alat ini untuk memeriksa token selama debugging. Gunakan library JWT di server Anda untuk memverifikasinya di produksi.
Pertanyaan umum
โบBisakah saya memverifikasi tanda tangan di sini?
Tidak โ verifikasi memerlukan kunci rahasia atau publik, yang tidak boleh pernah meninggalkan lingkungan tepercaya. Gunakan library JWT sisi server (jsonwebtoken untuk Node, PyJWT untuk Python, dll.).
โบApakah token meninggalkan browser saya?
Tidak pernah. Decoding berjalan secara lokal; kami tidak memiliki endpoint server untuk menerimanya.
โบMengapa token saya 'tidak valid'?
Umum: salin-tempel menambah/menghapus spasi, kehilangan salah satu dari tiga segmen, atau satu segmen adalah Base64url yang rusak. Potong dan coba lagi.
โบApa itu Base64url vs Base64?
Base64url mengganti '+' dengan '-', '/' dengan '_', dan menghapus padding '=' sehingga string yang dienkode aman di URL dan header HTTP. JWT selalu menggunakan Base64url.
โบMengapa payload Unicode saya menampilkan teks yang rusak?
Kami mendecode UTF-8, yang merupakan standar. Jika payload dienkode secara berbeda, JSON.parse mungkin gagal. Sebagian besar penerbit JWT mengenkode UTF-8 dengan benar.
โบApakah HS256 aman?
Jika rahasianya cukup panjang (โฅ256 bit) dan dijaga kerahasiaannya, ya. Kerentanan HS256 yang umum adalah rahasia yang lemah dan menerima token dengan alg='none'. Gunakan rahasia acak โฅ32 karakter dan tolak 'none' secara eksplisit.
โบMengapa lebih memilih RS256 daripada HS256?
RS256 (RSA asimetris) memungkinkan Anda mempublikasikan kunci publik untuk verifikasi sambil menjaga kunci penandatanganan tetap privat. HS256 (HMAC simetris) memerlukan berbagi rahasia dengan setiap verifier. Untuk arsitektur multi-layanan, RS256 lebih aman.
โบBisakah saya mendecode token yang sangat besar?
Batas praktisnya sekitar ~10 MB input; di atas itu browser mungkin melambat. JWT biasanya di bawah 4 KB; jika milik Anda lebih besar, pertimbangkan apakah Anda menyimpan terlalu banyak dalam klaim.
Alat terkait
Terakhir diperbarui: