Dekodues JWT
Dekodo header-in dhe payload-in e një JWT, lexo exp, iat dhe nbf si data dhe verifiko nënshkrimet HS256, RS256, ES256 ose EdDSA lokalisht në shfletuesin tënd.
Tokenët janë kredenciale. Ky mjet i dekodon dhe i verifikon ato në shfletuesin tënd dhe nuk i dërgon askund.
Header
Payload
| Pretendimi | Vlera | Data | Gjendja |
|---|
- Algoritmi (alg)
- —
- Nënshkrimi (Base64url)
- —
Verifiko nënshkrimin
HS256/384/512: shkruaj sekretin e përbashkët. RS, PS, ES (256/384/512) dhe EdDSA: ngjit çelësin publik si PEM (çelës publik, çelës publik RSA ose certifikatë) ose JWK (një JWK Set zgjidhet sipas kid).
Si ta dekodosh një JWT
- Ngjit tokenin te JSON Web Token. Funksionon edhe një vlerë e plotë
Authorization: Bearer …: parashtesaBearerdhe ndarjet e rreshtave hiqen automatikisht. - Tokeni dekodohet ndërkohë që shkruan (ose kliko Dekodo). Header dhe Payload shfaqen si JSON i formatuar, secili me butonin e vet Kopjo.
- Lexo tabelën Pretendimet kohore:
exp,nbfdheiatshfaqen me vlerën e papërpunuar, datën në zonën tënde kohore, një kohë relative (“pas 3 orësh”, “2 ditë më parë”) dhe një gjendje si Ka skaduar ose Ende i pavlefshëm. - Shiko paralajmërimet mbi rezultatet, për shembull kur
algështënoneose kur një datë duket në milisekonda. - Për të kontrolluar nënshkrimin, plotëso çelësin te Verifiko nënshkrimin dhe kliko Verifiko nënshkrimin.
Dekodimi nuk është verifikim
Një JWT përbëhet nga tri pjesë Base64url të ndara me pika: header.payload.signature. Header-i dhe payload-i janë vetëm të koduar, jo të enkriptuar, ndaj kushdo që e ka tokenin mund t’i lexojë, dhe ky mjet mund të dekodojë çdo token pa çelës. Kjo do të thotë gjithashtu se një payload i dekoduar nuk provon asgjë: dikush mund ta ketë ndryshuar. Vetëm një nënshkrim i vlefshëm tregon se tokeni është lëshuar nga zotëruesi i çelësit dhe nuk është modifikuar që atëherë. Prandaj rreshti i gjendjes shfaq “Dekoduar (nënshkrimi nuk është verifikuar)” derisa ta verifikosh.
Një token me pesë pjesë është JWE (JWT i enkriptuar); përmbajtja e tij nuk mund të lexohet pa çelësin e dekriptimit dhe mjeti ta tregon këtë.
Verifikimi i nënshkrimit
- HS256, HS384, HS512 (HMAC): shkruaj Sekretin e përbashkët. Me Formati i sekretit zgjidh nëse është tekst i thjeshtë (UTF-8) apo Base64/Base64url, pasi disa ofrues e ruajnë sekretin në Base64. Mund të ngjitësh edhe një JWK të llojit
oct. Nëse sekreti është më i shkurtër se dalja e hash-it (32 bajt për HS256), mjeti shënon se është nën minimumin e RFC 7518. - RS256/384/512, PS256/384/512, ES256/384/512 dhe EdDSA: ngjit Çelësin publik (PEM ose JWK). Blloqet PEM të pranuara janë
PUBLIC KEY,RSA PUBLIC KEYdheCERTIFICATE(çelësi lexohet nga certifikata X.509). Funksionon edhe një JWK ose një JWK Set i plotë: përdoret çelësi që përputhet mekidtë header-it. Çelësat privatë refuzohen; një verifikues nuk ka nevojë për të. EdDSA mbështet Ed25519 në shfletuesit ku Web Crypto e ka të implementuar.
Verifikimi përdor API-n Web Crypto të shfletuesit. Rezultati “Nënshkrim i pavlefshëm” do të thotë se çelësi është i gabuar ose tokeni është modifikuar. Vëre që algoritmi merret nga header-i i tokenit: një server i vërtetë duhet ta fiksojë algoritmin e pritur në konfigurim, përndryshe një sulmues mund ta zgjedhë vetë.
Shënime sigurie
- Tokenët janë kredenciale. Kushdo që ka një token aksesi të vlefshëm zakonisht mund të veprojë si pronari i tij deri sa të skadojë. Ky mjet dekodon dhe verifikon gjithçka në shfletuesin tënd dhe nuk e dërgon askund as tokenin, as çelësin. Megjithatë, shmang ngjitjen e tokenëve të produksionit në mjete që nuk mund t’i inspektosh.
alg: nonedo të thotë se tokeni nuk është i nënshkruar. Kushdo mund ta falsifikojë një të tillë dhe serveri duhet ta refuzojë. Mjeti shfaq një paralajmërim dhe nuk pranon ta “verifikojë” një token të tillë.- Kontrollet e orës këtu përdorin orën e kompjuterit tënd pa asnjë tolerancë; serverët shpesh lejojnë një a dy minuta shmangie të orës.
- Datat JWT (NumericDate) janë sekonda nga 1 janari 1970 UTC. Një vlerë me 13 shifra ka gjasa të jetë në milisekonda, gabim shumë i zakonshëm.
Pyetje të shpeshta
A mund të më tregojë ky mjet nëse një token është i vlefshëm?
Mund të të tregojë nëse nënshkrimi përputhet me një çelës që ti jep dhe nëse exp e nbf plotësohen tani. Nëse tokeni pranohet varet edhe nga kontrolle që i di vetëm serveri: lëshuesi i pritur (iss), audienca (aud), algoritmi dhe revokimi.
Pse dështon verifikimi me sekretin e duhur?
Kontrollo Formatin e sekretit: një sekret Base64 i shkruar si tekst jep një çelës tjetër. Sigurohu gjithashtu që sekretit nuk i është shtuar hapësirë ose ndarje rreshti, sepse çelësat HMAC krahasohen bajt pas bajti.
Cili është ndryshimi mes RS256, PS256 dhe ES256?
Të tria janë nënshkrime me çelës publik dhe SHA-256. RS256 përdor RSA me mbushje PKCS#1 v1.5, PS256 përdor RSA me mbushje PSS, ndërsa ES256 përdor ECDSA mbi kurbën P-256, që jep nënshkrime shumë më të shkurtra.
Ku e gjej çelësin publik të një ofruesi?
Ofruesit e identitetit publikojnë një JWKS (JSON Web Key Set), zakonisht të lidhur nga /.well-known/openid-configuration te jwks_uri. Hape vetë dhe ngjit JSON-in këtu; mjeti zgjedh çelësin sipas kid dhe nuk merr kurrë asgjë nga interneti.
A është e sigurt të ngjis tokenin tim këtu?
Tokeni mbetet në pajisjen tënde: dekodimi dhe verifikimi bëhen lokalisht dhe asgjë nuk ngarkohet. Për kujdes shtesë, përdor një token të skaduar ose testues kur të duhet vetëm të inspektosh strukturën.
Mjete të ngjashme
- Gjeneratori HMAC Llogarit HMAC-SHA1, SHA-256, SHA-384 ose SHA-512 me çelës tekst, hex ose Base64, merr daljen hex e Base64 dhe kontrollo një nënshkrim webhook në shfletues.
- Koduesi dhe dekoduesi Base64 Kodues dhe dekodues Base64 falas me mbështetje të plotë UTF-8 dhe opsion base64url. Funksionon plotësisht në shfletuesin tënd, asgjë nuk ngarkohet.
- Konvertues timestamp Unix Konverto timestamp-e Unix në sekonda ose milisekonda në data të lexueshme në orën lokale, UTC dhe ISO 8601, dhe ktheje çdo datë në kohë epoch.
- Formatuesi dhe vlerësuesi i JSON Formatues dhe vlerësues JSON falas që bukuron, minifikon dhe kontrollon JSON në shfletuesin tënd, me gabimet e sintaksës sipas rreshtit dhe kolonës.