header.payload.signature
JWT decoder
Ang JSON Web Token (JWT) ay 3 Base64url na bahagi na pinaghihiwalay ng mga tuldok: header, payload at signature. Mag-paste ng token para basahin ang mga claim at oras nito; dine-decode ito rito, hindi vine-verify.
- iat 1700000000 = 2023-11-14 22:13:20 UTC
- exp 1700003600 = 2023-11-14 23:13:20 UTC
- HS256 = 32 B
Nananatili ang token sa tab na ito at hindi ipinapadala saanman. Ang na-decode na token ay hindi pinagkakatiwalaang token: hindi kailanman sinusuri rito ang signature.
Scanned by NortonTM Safe Web
Sa isang tingin
- Presyo
- Walang singil
- Account
- Hindi kailangan
- Mga pamantayan
- RFC 7519 (JWT), RFC 7515 (JWS), RFC 7516 (JWE)
- Signature
- Hindi vine-verify — dine-decode lang ang token
- Mga oras
- Ang exp, nbf at iat ay ipinapakita sa UTC at inihahambing sa orasan mo
- Upload
- Wala — nananatili ang token sa tab ng browser mo
Sample na token at mga karaniwang algorithm
Pinirmahan ang sample na token sa page na ito gamit ang HMAC-SHA-256 sa isang itatapon na key. Dine-decode ito ng page para buuin ang unang talahanayan.
| Claim | Value | Oras (UTC) |
|---|---|---|
| iss | auth.example.com | — |
| sub | user-42 | — |
| aud | api | — |
| iat | 1700000000 | 2023-11-14 22:13:20 UTC |
| exp | 1700003600 | 2023-11-14 23:13:20 UTC |
| alg | Pamilya | Hash | Laki ng signature |
|---|---|---|---|
| HS256 | HMAC | SHA-256 | 32 B |
| HS512 | HMAC | SHA-512 | 64 B |
| RS256 | RSASSA-PKCS1-v1_5 | SHA-256 | 256 B (2048-bit key) |
| ES256 | ECDSA P-256 | SHA-256 | 64 B |
| ES512 | ECDSA P-521 | SHA-512 | 132 B |
| EdDSA | EdDSA | — | 64 B (Ed25519) |
Paano mag-decode ng JWT
I-paste ang token
I-paste ang buong token, may nauunang Bearer man o wala. May 3 bahagi itong pinaghihiwalay ng mga tuldok, o 5 kung encrypted na JWE.
Basahin ang mga bahagi
Lumalabas ang header at payload bilang naka-format na JSON, at nakalista sa talahanayan ang bawat claim. Ipinapakita sa UTC ang mga oras na exp, nbf at iat.
Suriin ang oras
Inihahambing ng page ang exp at nbf sa orasan ng device mo at sinasabi kung nag-expire na ang token. Hindi nito sinasabi kung tunay ang token.
Paano binubuo ang JWT
Ang JWT (RFC 7519) ay isinusulat bilang header.payload.signature. Ang header at payload ay mga JSON object, na bawat isa ay naka-encode bilang Base64url na walang padding (RFC 4648, seksyon 5), at ang signature ay raw bytes sa parehong encoding. Encoding lang ang binabago ng pag-decode, kaya kahit sino na may hawak ng token ay mababasa ang payload nito: huwag maglagay ng mga sikreto rito. Pinangangalanan ng header ang algorithm ng pagpirma sa alg, tulad ng HS256 (HMAC na may SHA-256, 32-byte na signature) o RS256 (RSA na may SHA-256, 256 byte para sa 2048-bit na key).
Dine-decode lang ng page na ito ang token at wala nang iba. Hindi nito sinusuri ang signature, dahil kailangan niyon ang key, at hindi nito masasabi kung tunay, binawi o tinatanggap ng server ang isang token. Inihahambing nito ang mga claim na exp, nbf at iat, na nagbibilang ng segundo mula 1970-01-01 UTC, sa orasan ng device mo at piniprint ang mga ito bilang UTC na petsa at oras. Ang token na may 5 bahagi ay JWE: naka-encrypt ang nilalaman nito, kaya header lang ang maipapakita.
Mga tanong tungkol sa JWT
Paano ako magde-decode ng JWT?
I-paste ang token sa box. Hinahati ito ng page sa mga tuldok, kino-convert ang unang dalawang bahagi mula sa Base64url at ipinapakita ang mga ito bilang JSON. Binabalewala ang nauunang Bearer. Para sa sample na token, ang header ay {"alg":"HS256","typ":"JWT"}.
Vine-verify ba ng page na ito ang signature?
Hindi. Kailangan ng pag-verify ang sikreto o ang public key, at hindi kailanman humihingi ng isa ang page na ito. Ang token na nadi-decode rito ay puwede pa ring peke, binago o binawi. I-verify ang signature sa sarili mong server code gamit ang maintained na JWT library.
Ano ang ibig sabihin ng exp, iat at nbf?
Mga oras ang mga ito sa segundo mula 1970-01-01 UTC (RFC 7519). Ang exp ay kung kailan mag-e-expire ang token, ang nbf ay ang oras bago kung saan hindi ito dapat tanggapin, at ang iat ay kung kailan ito inilabas. Sa sample na token, ang iat 1700000000 ay 2023-11-14 22:13:20 UTC at ang exp 1700003600 ay isang oras pagkatapos.
Ligtas ba na mag-paste ng totoong token dito?
Nananatili ang token sa tab ng browser mo at hindi ipinapadala saanman. Gayunpaman, kredensyal ang aktibong token: magagamit ito ng sinumang may hawak nito hanggang mag-expire. Mag-paste ng mga token na pag-aari mo, at piliin ang expired o test na token kung maaari.
Bakit 5 ang bahagi ng token ko?
Ang token na may 5 bahagi ay JWE, isang encrypted na JSON Web Token (RFC 7516). Naka-encrypt ang payload nito para sa tatanggap, kaya header at laki lang ng mga bahagi ang ipinapakita ng page na ito. Hindi mababasa rito ang nilalaman.
Ano ang ibig sabihin ng "not Base64url" o "not JSON"?
Ang bawat isa sa unang dalawang bahagi ay dapat Base64url na tekstong nagde-decode sa isang JSON object. Pinangangalanan ng page ang bahaging pumalya at kung bakit: karakter na labas sa alpabeto, bytes na hindi UTF-8, o JSON na may error sa isang line at column. Karaniwang sanhi ang token na pinutol o may sobrang karakter.