Apakah Penyahkod JWT?
JWT (JSON Web Token) ialah cara standard yang digunakan oleh API web moden untuk mewakili claim pengesahan dan kebenaran. Ia adalah token ringkas dan berdikari yang terdiri daripada tiga bahagian — header yang menerangkan algoritma penandatanganan, payload yang membawa claim sebenar (seperti ID pengguna, peranan, dan tamat tempoh), dan tandatangan yang membolehkan pelayan penerima mengesahkan token tidak diubah.
Penyahkod ini membaca header dan payload serta-merta supaya anda boleh menyahpepijat isu pengesahan, menyemak claim sebenar yang dihantar oleh sesuatu API, atau menyemak bila token akan tamat tempoh — semuanya tanpa memerlukan backend, alat CLI, atau menampal token sensitif ke dalam pelayan pihak ketiga, kerana semuanya berjalan secara tempatan dalam pelayar anda.
Bila Menggunakan Kalkulator Ini
- Menyahpepijat sebab API menolak token dengan menyemak claim dan masa tamat tempohnya
- Menyemak masa tamat tempoh token semasa siasatan sokongan atau respons insiden
- Mengesahkan bahawa pembekal SSO atau OAuth mengeluarkan klaim yang dijangka oleh aplikasi anda.
- Mempelajari struktur JWT untuk persediaan temu duga atau kursus keselamatan
- Menyemak token yang ditangkap daripada alat pembangun pelayar atau log pelayar untuk memahami kandungannya
- Membandingkan algoritma pengepala antara token untuk menyahpepijat kegagalan pengesahan ketidakpadanan algoritma
Langkah:
- Tampal JWT anda ke dalam kotak input, atau klik "Muat Contoh" untuk mencuba satu.
- Header dan payload dinyahkod secara automatik semasa anda menaip.
- Semak claim seperti iss, sub, exp, dan iat dalam bentuk yang mudah dibaca.
- Claim cap masa (exp, iat, nbf) secara automatik ditukar kepada tarikh yang mudah dibaca.
Rumus
JWT = base64Url(header) + "." + base64Url(payload) + "." + base64Url(signature)
Menyahkod: pisahkan pada ".", nyahkod base64Url dua bahagian pertama, huraikan sebagai JSON.
Mengesahkan (tidak dilakukan di sini): HMACSHA256(base64Url(header) + "." + base64Url(payload), secret) === signature
Kes Penggunaan
- Menyahpepijat sebab API menolak token dengan menyemak claim-nya
- Menyemak masa tamat tempoh token semasa siasatan sokongan
- Mengesahkan pembekal SSO atau OAuth mengeluarkan claim yang dijangka
- Mempelajari struktur JWT untuk persediaan temu duga atau kerja kursus
- Menyemak dengan pantas token yang ditampal daripada alat pembangun pelayar atau log pelayan
Faedah Utama
- Nyahkod mana-mana JWT dengan segera tanpa backend atau alat CLI
- Semuanya berjalan di sisi klien — token tidak pernah dihantar ke pelayan
- Secara automatik menukar claim cap masa kepada tarikh yang mudah dibaca
- Percuma, tiada pendaftaran, berfungsi pada mana-mana JWT tanpa mengira algoritma
Tips Pro
- Sentiasa semak 'exp' dahulu semasa menyahpepijat ralat "unauthorized" — token yang tamat tempoh adalah punca paling biasa
- Bandingkan 'alg' dalam header dengan apa yang dijangka oleh backend anda untuk mengesan pepijat ketidakpadanan algoritma
- Jangan sekali-kali percaya payload yang dinyahkod sebagai bukti identiti tanpa mengesahkan tandatangan di sisi pelayan
- Gunakan token berjangka hayat pendek dengan refresh token dan bukannya JWT berjangka hayat panjang untuk mengehadkan pendedahan jika satu bocor
Kesilapan Biasa
- Menganggap JWT yang dinyahkod adalah JWT yang disahkan — menyahkod hanya membaca kandungan, ia tidak mengesahkan ketulenan
- Menyimpan data sensitif (kata laluan, rahsia) dalam payload, terlupa ia boleh dibaca oleh sesiapa sahaja
- Menampal token produksi ke dalam penyahkod dalam talian yang tidak dipercayai
- Mengelirukan 'exp' (tamat tempoh) dengan 'iat' (dikeluarkan pada) semasa menyahpepijat isu jangka hayat token
Istilah Utama
- Claim: Sekeping maklumat yang dinyatakan tentang subjek, seperti ID pengguna atau peranan
- Header: Segmen pertama JWT, menentukan algoritma penandatanganan dan jenis token
- Payload: Segmen kedua JWT, mengandungi claim sebenar
- Tandatangan: Segmen ketiga JWT, digunakan untuk mengesahkan token tidak diubah
Konsep Berkaitan
- Penjana hash:
- Penjana UUID:
- Pengekod/penterjemah Base64:
- Pemformat JSON:
- Pemeriksa kekuatan kata laluan:
Contoh
Token yang bermula dengan eyJhbGciOiJIUzI1NiJ9 dinyahkod kepada header {"alg":"HS256","typ":"JWT"} — memberitahu anda bahawa token ditandatangani dengan HMAC-SHA256.
Mentafsir Hasil
Penyahkod membahagikan JWT pada dua pemisah titik dan menyahkod dua segmen pertama dalam Base64URL. Tajuk memberitahu anda algoritma penandatanganan (seperti HS256 atau RS256) dan jenis token. Muatan mengandungi tuntutan sebenar — identiti pengguna, kebenaran dan cap masa.
Tuntutan cap masa (exp, iat, nbf) ditukar secara automatik daripada era Unix kepada tarikh yang boleh dibaca. Jika 'exp' menunjukkan tarikh lepas, token telah tamat tempoh dan kebanyakan pelayan akan menolaknya. Tuntutan 'sub' (subjek) biasanya mengandungi ID pengguna, dan 'iss' (penerbit) mengenal pasti pelayan yang mencipta token.
Ingat bahawa penyahkodan bukan pengesahan. Bahagian tandatangan dipaparkan tetapi tidak boleh disahkan tanpa kunci rahsia atau awam. Muatan yang dinyahkod hanyalah maklumat — jangan sekali-kali mempercayainya sebagai bukti identiti tanpa pengesahan tandatangan di sisi pelayan.

