Dekodér JWT
Dekóduj hlavičku a obsah JWT, zobraz exp, iat a nbf ako dátumy a over podpisy HS256, RS256, PS256, ES256 či EdDSA lokálne v prehliadači.
Tokeny sú prístupové údaje. Tento nástroj ich dekóduje a overuje v tvojom prehliadači a nikam ich neodosiela.
Hlavička
Obsah (payload)
| Tvrdenie | Hodnota | Dátum | Stav |
|---|
- Algoritmus (alg)
- —
- Podpis (Base64url)
- —
Overiť podpis
HS256/384/512: zadaj zdieľané tajomstvo. RS, PS, ES (256/384/512) a EdDSA: vlož verejný kľúč ako PEM (public key, RSA public key alebo certifikát) alebo JWK (súbor JWK Set sa páruje podľa kid).
Ako dekódovať JWT
- Vlož token do poľa JSON Web Token. Funguje aj celá hodnota
Authorization: Bearer …: predponaBeareraj prípadné zalomenia riadkov sa odstránia. - Token sa dekóduje počas písania (alebo klikni na Dekódovať). Hlavička a Obsah (payload) sa zobrazia ako formátovaný JSON, každý s vlastným tlačidlom Kopírovať.
- Pozri si tabuľku Časové tvrdenia:
exp,nbfaiatsa zobrazia s pôvodnou hodnotou, dátumom v tvojom časovom pásme, relatívnym časom („o 3 hodiny“, „pred 2 dňami“) a stavom, napríklad Expirovaný alebo Zatiaľ neplatný. - Všimni si upozornenia nad výsledkami, napríklad keď je
algrovnénonealebo keď dátum vyzerá ako milisekundy. - Ak chceš skontrolovať podpis, vyplň kľúč v časti Overiť podpis a klikni na Overiť podpis.
Funguje v tvojom prehliadači. Nič, čo zadáš, sa neodosiela na server.
Dekódovanie nie je overenie
JWT tvoria tri časti vo formáte Base64url oddelené bodkami: hlavička.obsah.podpis. Hlavička a obsah sú iba zakódované, nie zašifrované, takže ich môže prečítať každý, kto má token, a tento nástroj dokáže dekódovať ľubovoľný token aj bez kľúča. Z toho vyplýva, že dekódovaný obsah nič nedokazuje: niekto ho mohol upraviť. Že token vydal držiteľ kľúča a od vydania sa nezmenil, preukáže až platný podpis. Stavový riadok preto uvádza „Dekódované (podpis nie je overený)“, kým podpis neoveríš.
Token s piatimi časťami je JWE (šifrovaný JWT). Jeho obsah sa bez dešifrovacieho kľúča nedá prečítať a nástroj ti to oznámi.
Overenie podpisu
- HS256, HS384, HS512 (HMAC): zadaj zdieľané Tajomstvo. V poli Formát tajomstva vyber, či ide o čistý text (UTF-8), alebo o Base64/Base64url, pretože niektorí poskytovatelia ukladajú tajomstvá v Base64. Môžeš vložiť aj JWK typu
oct. Ak je tajomstvo kratšie ako výstup hašovacej funkcie (32 bajtov pri HS256), nástroj upozorní, že je pod minimom podľa RFC 7518. - RS256/384/512, PS256/384/512, ES256/384/512 a EdDSA: vlož Verejný kľúč (PEM alebo JWK). Prijímané bloky PEM sú
PUBLIC KEY,RSA PUBLIC KEYaCERTIFICATE(kľúč sa prečíta z certifikátu X.509). Funguje aj JWK alebo celý súbor JWK Set: použije sa kľúč, ktoréhokidzodpovedá hlavičke. Súkromné kľúče sa odmietnu, na overenie ich nikdy nepotrebuješ. EdDSA podporuje Ed25519 v prehliadačoch, ktorých Web Crypto ho implementuje.
Overenie využíva rozhranie Web Crypto prehliadača. Výsledok „Neplatný podpis“ znamená, že kľúč je nesprávny alebo že token bol upravený. Pozor: algoritmus sa berie z hlavičky tokenu, kým skutočný server musí očakávaný algoritmus pevne nastaviť v konfigurácii, inak by ho mohol zvoliť útočník.
Bezpečnostné poznámky
- Tokeny sú prístupové údaje. Kto drží platný prístupový token, môže zvyčajne konať v mene jeho vlastníka, kým token neexpiruje. Tento nástroj všetko dekóduje a overuje v tvojom prehliadači a token ani kľúč nikam neodosiela. Napriek tomu nevkladaj produkčné tokeny do nástrojov, ktoré nemôžeš skontrolovať.
alg: noneznamená, že token nie je podpísaný. Ktokoľvek ho môže sfalšovať a server ho musí odmietnuť. Nástroj zobrazí upozornenie a takýto token „neoverí“.- Kontroly času tu používajú hodiny tvojho počítača bez akejkoľvek tolerancie; servery často pripúšťajú rozdiel hodín jednu až dve minúty.
- Dátumy v JWT (NumericDate) sú v sekundách od 1. januára 1970 UTC. Trinásťmiestna hodnota je pravdepodobne v milisekundách, čo je častá chyba.
Často kladené otázky
Dá sa tu zistiť, či je token platný?
Zistíš, či podpis zodpovedá kľúču, ktorý zadáš, a či sú práve teraz splnené podmienky exp a nbf. To, či sa token prijme, závisí aj od kontrol, ktoré pozná len server: očakávaný vydavateľ (iss), publikum (aud), algoritmus a odvolanie platnosti.
Prečo overenie zlyhá, hoci mám správne tajomstvo?
Skontroluj Formát tajomstva: tajomstvo v Base64 zadané ako text dáva iný kľúč. Dbaj aj na to, aby sa k tajomstvu nepridala medzera ani zalomenie riadka, keďže kľúče HMAC sa porovnávajú bajt po bajte.
Aký je rozdiel medzi RS256, PS256 a ES256?
Všetky tri sú podpisy s verejným kľúčom a hašom SHA-256. RS256 používa RSA s doplnením PKCS#1 v1.5, PS256 používa RSA s doplnením PSS a ES256 používa ECDSA na krivke P-256, čo dáva podstatne kratšie podpisy.
Kde nájdem verejný kľúč poskytovateľa?
Poskytovatelia identít zverejňujú súbor JWKS (JSON Web Key Set), zvyčajne odkazovaný z /.well-known/openid-configuration pod položkou jwks_uri. Otvor ho sám a vlož sem JSON; nástroj vyberie kľúč podľa kid a nič nesťahuje.
Je bezpečné vložiť sem môj token?
Token zostáva na tvojom zariadení: dekódovanie aj overenie prebiehajú lokálne a nič sa nenahráva. Pre väčšiu opatrnosť použi expirovaný alebo testovací token, ak potrebuješ len pozrieť štruktúru.
Súvisiace nástroje
- Generátor HMAC (SHA-256, SHA-512) Vypočítaj HMAC-SHA1, SHA-256, SHA-384 alebo SHA-512 s kľúčom v texte, hex alebo Base64, získaj výstup v hex a Base64 a over podpis webhooku v prehliadači.
- Base64 kodér a dekodér Bezplatný kodér a dekodér Base64 s plnou podporou UTF-8 a voľbou base64url pre URL. Beží celý v prehliadači, nič sa nenahráva na server.
- Prevodník Unix timestamp Prevádzaj Unix timestamp v sekundách alebo milisekundách na čitateľný dátum v miestnom čase, UTC a ISO 8601 a ľubovoľný dátum zmeň späť na epoch čas.
- Formátovanie a validácia JSON Bezplatný formátovač a validátor JSON, ktorý skrášľuje, minifikuje a kontroluje JSON v prehliadači a hlási syntaktické chyby s riadkom a stĺpcom.