Návod
Jak dekódovat JWT bez jeho úniku
JSON Web Token nese skutečná data: uživatele, kterému byl vydán, oprávnění, která uděluje, i okamžik vypršení platnosti. Vložit jej do náhodného online dekodéru znamená předat tato data, a často i stále platnou relaci, serveru, který nemáte pod kontrolou. Dekodér níže běží výhradně ve vašem prohlížeči, takže si můžete přečíst, co je uvnitř tokenu, zkontrolovat, zda nevypršel, a ověřit podpis HMAC, pokud znáte tajný klíč, a to bez jediného síťového požadavku, který by opustil vaši kartu.
Krok za krokem
- Otevřete dekodér JWT a vložte svůj token do vstupního pole. JWT tvoří tři části kódované v Base64Url a spojené tečkami: hlavička, payload a podpis. Můžete jej vložit s prefixem Bearer i bez něj; nástroj přečte strukturu v obou případech a okamžitě vás upozorní, pokud je formát chybný.
- Přečtěte si dekódovanou hlavičku a payload. Hlavička ukazuje podpisový algoritmus (například HS256 nebo RS256) a případně identifikátor klíče. Payload vypisuje claimy: pro koho je token určen (sub), kdo jej vydal (iss) a časové značky. Nástroj převede číselná pole iat, nbf a exp na čitelná data a označí, zda je token stále platný, nebo už vypršel.

- Pokud token používá HS256 a máte sdílený tajný klíč, vložte tajný klíč do pole pro ověření a klikněte na Ověřit. Nástroj znovu vypočítá HMAC z hlavičky a payloadu a porovná jej s podpisem, takže zjistíte, zda je token pravý, nebo byl pozměněn. U tokenů RS256 nebo ES256 se podepisuje soukromým klíčem, který nemáte, takže nástroj zkoumá claimy, ale netvrdí, že podpis ověřuje.

Proč nikdy nevkládat token na náhodnou stránku
JWT není šifrovaný. Hlavička a payload jsou pouze kódovány v Base64Url, což znamená, že kdokoli token obdrží, může si přečíst každý claim uvnitř: e-mail, ID uživatele, role, interní příznaky. Pokud je token přístupový a ještě nevypršel, kdokoli jej drží, jej může přehrát a vystupovat za vás, dokud platí. Když vložíte živý token do hostovaného dekodéru, odešlete to vše do logů onoho serveru. Dekódování tokenu na vlastním zařízení, bez nahrávání, je jediný způsob, jak jej prozkoumat a nerozšiřovat okruh těch, kdo jej vidí. Že neprobíhá žádný provoz, si můžete ověřit otevřením síťového panelu během dekódování.
Co podpis prozradí a co ne
Podpis je to, co brání někomu upravit claimy a projít s tím bez následků. U tokenu HS256 podepisuje i ověřuje stejný tajný klíč, takže pokud klíč znáte, můžete pravost tokenu plně potvrdit přímo zde. U tokenů RS256 a ES256 podepisuje token soukromý klíč a ověřuje jej pouze odpovídající veřejný klíč; soukromý klíč nikdy neopustí vydavatele, takže nástroj na straně klienta umí přečíst claimy, ale bez veřejného klíče nemůže poctivě podpis prokázat. Dekódovaný payload považujte za tvrzení vydavatele, nikoli za důkaz, dokud podpis neověří ten, kdo vlastní ověřovací klíč. Pokud potřebujete tajné klíče zvlášť hashovat nebo porovnávat, generátor hashů na tomto webu rovněž běží lokálně.
Struktura JWT a co každá část odhaluje
JWT jsou tři segmenty kódované Base64url oddělené tečkami: záhlaví, datová část a podpis. Záhlaví deklaruje typ tokenu ("JWT") a algoritmus: HS256 (HMAC-SHA-256, sdílené tajemství) nebo RS256 (RSA-SHA-256, pár veřejného a soukromého klíče) jsou nejběžnější. Datová část nese claims jako `sub` (subject, obvykle ID uživatele), `iat` (Unix časová značka vydání), `exp` (Unix časová značka vypršení platnosti), `aud` (zamýšlené publikum) a vlastní aplikační claims jako role nebo rozsahy. Base64url není šifrování: jde o variantu Base64 bezpečnou pro URL, která nahrazuje `+` za `-` a `/` za `_` a vynechává doplnění. Kdokoli, kdo má řetězec surového tokenu, může záhlaví a datovou část dekódovat bez podpisového klíče. Pouze segment podpisu vyžaduje klíč k ověření. Proto je vkládání živého produkčního tokenu do externího online dekodéru bezpečnostním rizikem: pokud `exp` tokenu je stále v budoucnosti a služba loguje vstup, může být ohrožena relace, kterou token zastupuje.
Nástroje použité v tomto návodu
Časté dotazy
Odesílá se můj token při dekódování na nějaký server?
Ne. Dekodér token rozdělí, dekóduje hlavičku a payload z Base64Url a vykreslí je v paměti. Volitelná kontrola HMAC používá vestavěné rozhraní Web Crypto API vašeho prohlížeče. Nic neputuje po síti, což je důležité, protože JWT často obsahuje osobní data a relaci, která je stále aktivní. Otevřete během dekódování síťový panel prohlížeče a uvidíte, že žádný požadavek neodejde.
Umí tento nástroj ověřit podpis RS256 nebo ES256?
Ne plně a nebude to předstírat. HS256 používá k podpisu i ověření jeden sdílený tajný klíč, takže vložení tohoto klíče umožní nástroji potvrdit podpis ve vašem prohlížeči. RS256 a ES256 používají k podpisu soukromý klíč a k ověření samostatný veřejný klíč; nástroj přečte a ověří claimy a platnost, ale netvrdí podpis, který nemůže zkontrolovat. U těchto tokenů ověřujte na službě, která drží veřejný klíč.