Langkau ke kandungan

header.payload.signature

Penyahkod JWT

JSON Web Token (JWT) ialah 3 bahagian Base64url yang dipisahkan titik: pengepala, muatan dan tandatangan. Tampal token untuk membaca tuntutan dan masanya; ia dinyahkod di sini, tidak disahkan.

Token kekal dalam tab ini dan tidak dihantar ke mana-mana. Token yang dinyahkod bukan token yang dipercayai: tandatangan tidak pernah disemak di sini.

Scanned by NortonTM Safe Web

Sepintas lalu

Harga
Tiada caj
Akaun
Tidak diperlukan
Piawaian
RFC 7519 (JWT), RFC 7515 (JWS), RFC 7516 (JWE)
Tandatangan
Tidak disahkan — token hanya dinyahkod
Masa
exp, nbf dan iat ditunjukkan dalam UTC dan dibandingkan dengan jam anda
Muat naik
Tiada — token kekal dalam tab pelayar anda

Token sampel dan algoritma lazim

Token sampel pada halaman ini ditandatangani dengan HMAC-SHA-256 menggunakan kunci sekali pakai. Halaman menyahkodnya untuk menghasilkan jadual pertama.

Tuntutan token sampel
TuntutanNilaiMasa (UTC)
issauth.example.com—
subuser-42—
audapi—
iat17000000002023-11-14 22:13:20 UTC
exp17000036002023-11-14 23:13:20 UTC
Algoritma penandatanganan lazim (alg)
algKeluargaHashSaiz tandatangan
HS256HMACSHA-25632 B
HS512HMACSHA-51264 B
RS256RSASSA-PKCS1-v1_5SHA-256256 B (2048-bit key)
ES256ECDSA P-256SHA-25664 B
ES512ECDSA P-521SHA-512132 B
EdDSAEdDSA—64 B (Ed25519)

Cara menyahkod JWT

1

Tampal token

Tampal keseluruhan token, dengan atau tanpa Bearer di hadapan. Ia ada 3 bahagian yang dipisahkan titik, atau 5 jika ia JWE yang disulitkan.

2

Baca bahagiannya

Pengepala dan muatan muncul sebagai JSON yang diformat, dan setiap tuntutan disenaraikan dalam jadual. Masa exp, nbf dan iat ditunjukkan dalam UTC.

3

Semak masanya

Halaman membandingkan exp dan nbf dengan jam peranti anda dan menyatakan sama ada token telah tamat tempoh. Ia tidak menyatakan sama ada token itu tulen.

Cara JWT dibina

JWT (RFC 7519) ditulis sebagai header.payload.signature. Pengepala dan muatan ialah objek JSON, masing-masing dikodkan sebagai Base64url tanpa padding (RFC 4648, seksyen 5), dan tandatangan ialah bait mentah dalam pengekodan yang sama. Penyahkodan hanya mengubah pengekodan, jadi sesiapa yang memegang token boleh membaca muatannya: jangan letakkan rahsia di dalamnya. Pengepala menamakan algoritma penandatanganan dalam alg, seperti HS256 (HMAC dengan SHA-256, tandatangan 32 bait) atau RS256 (RSA dengan SHA-256, 256 bait bagi kunci 2048-bit).

Halaman ini menyahkod token dan tidak melakukan apa-apa lagi. Ia tidak menyemak tandatangan, kerana itu memerlukan kunci, dan ia tidak dapat memberitahu anda sama ada token itu tulen, dibatalkan atau diterima oleh pelayan. Ia membandingkan tuntutan exp, nbf dan iat, yang mengira saat sejak 1970-01-01 UTC, dengan jam peranti anda dan mencetaknya sebagai tarikh-masa UTC. Token dengan 5 bahagian ialah JWE: kandungannya disulitkan, jadi hanya pengepalanya boleh ditunjukkan.

Soalan JWT

Bagaimana saya menyahkod JWT?

Tampal token ke dalam kotak. Halaman memecahkannya pada titik, menukar dua bahagian pertama daripada Base64url dan menunjukkannya sebagai JSON. Bearer di hadapan diabaikan. Bagi token sampel, pengepalanya ialah {"alg":"HS256","typ":"JWT"}.

Adakah halaman ini mengesahkan tandatangan?

Tidak. Pengesahan memerlukan rahsia atau kunci awam, dan halaman ini tidak pernah memintanya. Token yang dinyahkod di sini masih boleh dipalsukan, diubah atau dibatalkan. Sahkan tandatangan dalam kod pelayan anda sendiri dengan pustaka JWT yang diselenggara.

Apakah maksud exp, iat dan nbf?

Ia ialah masa dalam saat sejak 1970-01-01 UTC (RFC 7519). exp ialah masa token tamat tempoh, nbf ialah masa sebelum ia tidak boleh diterima, dan iat ialah masa ia dikeluarkan. Dalam token sampel, iat 1700000000 ialah 2023-11-14 22:13:20 UTC dan exp 1700003600 ialah satu jam kemudian.

Adakah selamat menampal token sebenar di sini?

Token kekal dalam tab pelayar anda dan tidak dihantar ke mana-mana. Namun, token yang aktif ialah kelayakan: sesiapa yang memegangnya boleh menggunakannya sehingga ia tamat tempoh. Tampal token yang anda miliki, dan pilih token yang telah tamat tempoh atau token ujian apabila boleh.

Mengapa token saya ada 5 bahagian?

Token dengan 5 bahagian ialah JWE, JSON Web Token yang disulitkan (RFC 7516). Muatannya disulitkan untuk penerima, jadi halaman ini hanya menunjukkan pengepala dan saiz bahagiannya. Kandungannya tidak dapat dibaca di sini.

Apakah maksud "not Base64url" atau "not JSON"?

Setiap satu daripada dua bahagian pertama mestilah teks Base64url yang dinyahkod kepada objek JSON. Halaman menamakan bahagian yang gagal dan sebabnya: aksara di luar abjad, bait yang bukan UTF-8, atau JSON dengan ralat pada baris dan lajur tertentu. Token yang terpotong atau ada aksara tambahan ialah punca lazim.