Penyahkod JWT

Penyahkod JWT kami menganalisis Token Web JSON dan memaparkan pengepala, muatan serta tandatangan dalam pandangan yang jelas dan terformat. Lihat semua klausa tuntutan standard (iss, sub, aud, exp, iat, nbf, jti) dengan cap masa yang mudah dibaca. Semak sama ada token telah tamat tempoh, lihat maklumat algoritma dan salin bahagian individu. Menyokong algoritma HS256, HS384, HS512, RS256, RS384, RS512, ES256, ES384, ES512 dan PS256. 100% pihak klien — token anda tidak pernah dihantar ke mana-mana pelayan.

star 4.9
auto_awesome AI
New

Penyahkod JWT calculator

lightbulb Tips

  • JWT = Header.Payload.Signature (3 parts)
  • Payloads are encoded, NOT encrypted
  • Always check 'exp' claim for expiration
  • RS256 is more secure than HS256 for APIs

How to Use the Penyahkod JWT

content_paste

Tampal Token

Tampal token JWT anda (rentetan panjang dengan dua titik) ke dalam medan input.

code

Lihat Pengepala

Lihat algoritma dan jenis token daripada pengepala JWT.

visibility

Periksa Muatan

Lihat semua tuntutan termasuk cap masa, subjek, pengeluar, dan data tersuai.

schedule

Semak Tarikh Luput

Lihat sama ada token telah tamat tempoh dan bila ia dikeluarkan.

The Formula

JWT mengandungi tiga bahagian yang di pengekodan Base64URL dan diasingkan oleh titik. Pengepala menentukan algoritma tandatangan (cth., HS256, RS256). Muatan mengandungi tuntutan — tuntutan berdaftar seperti 'exp' (tarikh luput), 'iat' (dikeluarkan pada), 'sub' (subjek), dan tuntutan tersuai. Tandatangan dicipta dengan menandatangani pengepala dan muatan yang dikodkan menggunakan kunci rahsia atau kunci peribadi.

JWT = Base64URL(Header) + '.' + Base64URL(Payload) + '.' + Signature

lightbulb Variables Explained

  • Header Objek JSON dengan algoritma (alg) dan jenis token (typ)
  • Payload Objek JSON yang mengandungi tuntutan (data) seperti sub, exp, iat
  • Signature Tandatangan HMAC atau RSA bagi pengepala + muatan untuk pengesahan
  • Base64URL Pengekodan Base64 yang selamat untuk URL (- menggantikan +, _ menggantikan /)

tips_and_updates Pro Tips

1

Token JWT TIDAK disulitkan — sesiapa sahaja boleh membaca muatan dengan menyahkod Base64

2

Sentiasa semak klausa tuntutan 'exp' — token yang telah tamat tempoh patut ditolak oleh API anda

3

Klausa tuntutan 'iat' (dikeluarkan pada) dan 'nbf' (bukan sebelum) membantu mencegah serangan ulangan token

4

HS256 menggunakan rahsia berkongsi; RS256 menggunakan pasangan kunci awam/persendirian — RS256 lebih selamat untuk sistem teragih

5

Jangan sekali-kali menyimpan data sensitif (kata laluan, kad kredit) dalam muatan JWT

6

Saiz token adalah penting — JWT dihantar bersama setiap permintaan HTTP dalam pengepala Authorization

7

Gunakan masa tamat tempoh yang singkat (15-60 minit) dengan token segar semula untuk keselamatan yang lebih baik

Penyahkod JWT percuma kami menghuraikan Token Web JSON dan memaparkan pengepala, muatan, dan tandatangan dalam paparan yang jelas dan berformat. Semak masa tamat tempoh, lihat semua tuntutan, dan periksa butiran token. 100% sebelah pelayar — token anda tidak pernah meninggalkan pelayar anda.

Penyahkod Token JWT - Lihat Pengepala & Muatan

Tampal sebarang token JWT dan serta-merta lihat pengepala dan muatan yang dinyahkod sebagai JSON berformat.

Penyahkod kami:

  • mengenal pasti algoritma tandatangan
  • memaparkan semua tuntutan piawai dan tersuai
  • menukar cap masa Unix kepada tarikh yang boleh dibaca manusia

Paparan berkod warna memudahkan anda membezakan tiga bahagian JWT.

Penyahkod JWT - Semak Tarikh Luput & Tuntutan

Nyahpepijat isu JWT dengan menyemak masa tamat tempoh, cap masa dikeluarkan, dan nilai tuntutan.

Alat kami menunjukkan sama ada token telah tamat tempoh, berapa lama lagi sebelum tamat tempoh, dan mengetengahkan potensi isu.

Penting untuk:

  • pembangunan API
  • penyahpepijatan pengesahan
  • audit keselamatan

Apakah itu JWT dan Bagaimana Strukturnya Berfungsi?

Sebuah Token Web JSON (JWT) ialah cara yang padat dan selamat untuk URL bagi mewakili tuntutan yang dipindahkan antara dua pihak, seperti yang ditentukan oleh RFC 7519 daripada IETF.

JWT mempunyai tiga bahagian yang diasingkan oleh titik, setiap satunya dikodkan dengan Base64URL mengikut RFC 4648:

  • pengepala yang mengisytiharkan algoritma tandatangan dan jenis token menggunakan JSON (RFC 8259)
  • muatan yang membawa tuntutan — kenyataan tentang entiti seperti pengguna, berserta metadata seperti tarikh luput
  • tandatangan yang mengikat pengepala dan muatan bersama-sama supaya sebarang usikan boleh dikesan

Struktur ini membolehkan perkhidmatan mengesahkan identiti tanpa carian pangkalan data, sebab itulah JWT lazim digunakan dalam pengesahan tanpa keadaan dan aliran OpenID Connect.

Cara Menyahkod Token JWT Langkah demi Langkah

Untuk menyahkod JWT, pecahkan token pada dua tanda titik kepada tiga segmen, kemudian nyahkod Base64URL untuk dua yang pertama.

Segmen pertama menghasilkan JSON pengepala, dan yang kedua menghasilkan JSON muatan, kedua-duanya boleh dibaca sebagai teks biasa mengikut RFC 8259.

Base64URL (RFC 4648, seksyen 5) menggantikan '+' dengan '-' dan '/' dengan '_' serta melangkau padding, jadi penyahkod Base64 standard mungkin gagal tanpa pelarasan. Alat kami mengendalikan perkara ini secara automatik dan mencetak keputusan dengan kemas.

Segmen ketiga, iaitu tandatangan, tidak dinyahkod kepada teks kerana ia adalah nilai kriptografi mentah.

Seperti yang dinyatakan oleh Dokumen Web MDN, menyahkod bukanlah pengesahan — membaca muatan tidak pernah mengesahkan bahawa token itu tulen.

Adakah JWT Disulitkan? Pengekodan vs Penyulitan Dijelaskan

Tidak — JWT yang ditandatangani standard (JWS) adalah dikodkan, bukan disulitkan, jadi sesiapa sahaja yang memegang token boleh membaca muatannya.

Pengekodan Base64URL (RFC 4648) boleh diterbalikkan dan memberikan kerahsiaan sifar; ia hanya membolehkan pengangkutan selamat perduaan. Tandatangan yang diterangkan dalam RFC 7515 (Tandatangan Web JSON) melindungi integriti dan keaslian, bukan kerahsiaan.

Jika anda perlukan kandungan disembunyikan, gunakan JWE (Penyulitan Web JSON, RFC 7516) sebagai gantinya.

OWASP dan IETF kedua-duanya menekankan perbezaan ini: jangan sekali-kali meletakkan kata laluan, rahsia API, atau data peribadi yang boleh dikenal pasti dalam muatan JWT yang ditandatangani, kerana penyahkod seperti ini mendedahkan setiap tuntutan dalam teks biasa tanpa sebarang kunci.

Memahami Tuntutan Piawai JWT: exp, iat, sub, aud

Tuntutan JWT berdaftar diselaraskan oleh RFC 7519 supaya sistem yang berbeza mentafsirkannya secara konsisten.

Set teras merangkumi:

  • 'iss' (pengeluar)
  • 'sub' (subjek, prinsipal token)
  • 'aud' (khalayak, penerima yang diniatkan)
  • 'exp' (masa tamat tempoh)
  • 'nbf' (bukan sebelum)
  • 'iat' (dikeluarkan pada)
  • 'jti' (ID token unik)

Nilai exp, nbf, dan iat adalah nilai NumericDate — saat sejak epoch Unix — yang ditukar oleh penyahkod kami kepada tarikh yang boleh dibaca manusia. Aplikasi menambah tuntutan tersuai (peribadi) untuk peranan, skop, atau ID penyewa.

Mengikut spesifikasi, pengesah mesti menolak token yang 'exp'-nya telah berlalu atau 'aud'-nya tidak sepadan dengan khalayak yang dijangkakan, bagi mencegah penyalahgunaan merentas perkhidmatan.

Algoritma Tandatangan JWT: HS256 vs RS256 vs ES256

Algoritma tandatangan JWT ditentukan dalam RFC 7518 (Algoritma Web JSON) dan dikenal pasti melalui nilai 'alg' pengepala.

  • Algoritma HMAC (HS256, HS384, HS512) menggunakan satu rahsia berkongsi tunggal untuk kedua-dua penandatanganan dan pengesahan, yang ringkas tetapi memerlukan setiap pengesah memegang rahsia itu.
  • Algoritma RSA (RS256, RS384, RS512) dan RSASSA-PSS (PS256) menggunakan kunci peribadi untuk menandatangani dan kunci awam untuk mengesahkan, sesuai untuk sistem teragih dan OpenID Connect.
  • Algoritma ECDSA (ES256, ES384, ES512) menawarkan keselamatan setara dengan kunci dan tandatangan yang lebih kecil.

NIST menerbitkan standard asas SHA-2 dan ECDSA. Penyahkod kami membaca medan 'alg' supaya anda boleh mengesahkan skema yang digunakan oleh sesuatu token.

Kegunaan Praktikal: JWT dalam Pengesahan dan Pembangunan API

JWT digunakan secara meluas untuk pengesahan tanpa keadaan, kebenaran, dan pertukaran maklumat selamat dalam API moden.

Selepas pengguna log masuk, pelayan mengeluarkan JWT yang ditandatangani yang dikembalikan oleh pelanggan dalam pengepala HTTP Authorization sebagai token Bearer, mengikut RFC 6750. Kerana tandatangan itu terkandung sendiri, perkhidmatan bahagian belakang boleh mengesahkan token tanpa menyoal simpanan sesi, meningkatkan skalabiliti.

JWT juga menguasakan token ID OpenID Connect dan corak token akses OAuth 2.0.

Pembangun menggunakan penyahkod semasa penyahpepijatan untuk memeriksa tuntutan, mengesahkan nilai audien dan pengeluar, dan menyemak tarikh luput apabila API mengembalikan ralat 401. Seperti yang diterangkan oleh MDN Web Docs, aliran berasaskan token ini menyokong banyak seni bina log masuk tunggal dan perkhidmatan mikro.

Amalan Terbaik Keselamatan JWT dan Perangkap Lazim

Penggunaan JWT yang selamat tertumpu pada pengesahan algoritma, pengesahan tandatangan, dan penguatkuasaan tarikh luput.

OWASP memberi amaran terhadap serangan 'alg: none' klasik dan serangan kekeliruan algoritma, di mana pelayan yang tertipu untuk melayan kunci awam RS256 sebagai rahsia HMAC boleh dipalsukan; sentiasa tetapkan algoritma yang dijangka daripada mempercayai pengepala.

Amalan utama:

  • Gunakan jangka hayat 'exp' yang singkat dengan token muat semula, dan sahkan 'iss' dan 'aud' pada setiap permintaan.
  • Jangan sekali-kali simpan rahsia dalam muatan, kerana ia hanya dikodkan Base64.
  • Hantar token secara eksklusif melalui HTTPS, dan pertimbangkan strategi pembatalan kerana JWT standard tidak boleh dibatalkan secara individu sebelum tamat tempoh.

Mengikuti cadangan IETF dan OWASP ini menutup kerentanan JWT yang paling banyak dieksploitasi.

Kesilapan Lazim Semasa Menyahkod dan Menggunakan JWT

Kesilapan paling lazim semasa bekerja dengan JWT termasuk:

  • Mengelirukan penyahkodan dengan pengesahan: membaca muatan dengan penyahkod tidak membuktikan apa-apa tentang keaslian, kerana sesiapa sahaja boleh membuat token yang tidak ditandatangani atau dipalsukan.
  • Mempercayai nilai 'alg' pengepala secara membabi buta, yang membolehkan serangan kekeliruan algoritma yang ditandakan oleh OWASP.
  • Salah membaca tarikh luput dengan membandingkan saat epoch 'exp' dengan milisaat, menyebabkan token yang sah kelihatan telah tamat tempoh.
  • Menggunakan penyahkod Base64 standard dan bukannya Base64URL (RFC 4648), yang boleh merosakkan output kerana abjad yang berbeza dan padding yang hilang.
  • Menempatkan data sensitif dalam muatan, yang menyebabkannya bocor, kerana token tersebut dikodkan, bukan disulitkan.

Mengesahkan tandatangan di sebelah pelayan dengan kunci dan algoritma yang dijangka mengelakkan perangkap ini.

Sebab Penyahkod JWT Ini Berjalan Sepenuhnya dalam Pelayar Anda

Penyahkod JWT ini memproses token sepenuhnya pada sisi pelanggan, jadi token anda tidak pernah meninggalkan peranti anda atau sampai ke mana-mana pelayan.

Kerana JWT yang ditandatangani hanya dikodkan Base64URL (RFC 4648), penyahkodan tidak memerlukan panggilan rangkaian — pengepala dan muatan hanya diterbalikkan daripada bentuk terkodnya menggunakan JavaScript dalam pelayar anda.

Menjaga operasi ini tetap tempatan penting untuk keselamatan: token selalunya mengandungi kelayakan sesi langsung, dan menampalnya ke dalam alat sebelah pelayan boleh mendedahkannya dalam log atau transit. OWASP mengesyorkan meminimumkan tempat kelayakan sensitif bergerak.

Penyahkod khusus pelayar membolehkan pembangun memeriksa token pengeluaran dengan selamat semasa penyahpepijatan sambil menghormati prinsip pendedahan minimum, tanpa menghantar data kebenaran kepada pihak ketiga.

Frequently Asked Questions

sell

Tags