Generátor a ověření JWT
Vytvářej a ověřuj JSON Web Tokeny s HS256, RS256, PS256, ES256 či EdDSA. Uprav claims, nastav exp a iat a zkontroluj podpis ve svém prohlížeči.
Klíče a tokeny jsou tajné. Vše se podepisuje a ověřuje lokálně pomocí Web Crypto API tvého prohlížeče: nic se nenahrává.
Vytvořit podepsaný JWT
Tento prohlížeč nepodporuje Ed25519 ve Web Crypto, proto EdDSA není k dispozici.
Testovací klíče se generují ve tvém prohlížeči a doplní se níže. Soukromý klíč nebo tajemství si nech pro sebe; sdílej jen veřejný klíč.
Ověřit JWT
Jak vytvořit podepsaný JWT
- Vyber Algoritmus: HS256/384/512 (sdílené tajemství), RS256/384/512 nebo PS256/384/512 (RSA), ES256/384/512 (ECDSA na P-256, P-384 či P-521) nebo EdDSA (Ed25519, pokud ho tvůj prohlížeč podporuje).
- Uprav Hlavičku (JSON) a Obsah (JSON claims). Pole
algvždy odpovídá zvolenému algoritmu atypmá výchozí hodnotuJWT. - Tlačítky pro časové údaje přidej data: iat = teď, nbf = teď, nebo vyber dobu, například „za 1 hodinu“, a klikni na Nastavit exp. Hodnoty jsou NumericDate: sekundy od 1. ledna 1970 UTC.
- Zadej Tajemství (algoritmy HS, jako text nebo Base64/Base64url podle Formátu tajemství) nebo Soukromý klíč (PEM nebo JWK). Ještě nemáš klíč? Klikni na Vygenerovat testovací klíč.
- Klikni na Podepsat token, pak výsledek Zkopíruj nebo klikni na Ověřit tento token a zkontroluj ho hned.
Jak ověřit JWT
- Vlož token do pole Token k ověření.
- Vyber Očekávaný algoritmus. Ponecháš-li „Z hlavičky tokenu (nikdy none)“, přijme se cokoli, co hlavička uvádí, kromě
none; zvolíš-li konkrétní algoritmus, nástroj odmítne každý token podepsaný jinak, tak jako by to měl dělat skutečný server. - Zadej tajemství nebo Veřejný klíč (PEM nebo JWK): blok PEM
PUBLIC KEY,RSA PUBLIC KEYčiCERTIFICATE, JWK nebo sadu JWK Set (použije se klíč, jehožkidodpovídá hlavičce). - Volitelně nastav Toleranci hodin (sekundy) pro vyrovnání drobných rozdílů v čase a klikni na Ověřit token.
Výsledek říká, zda je podpis platný, a poté zkontroluje exp (konec platnosti) a nbf (platné od) podle aktuálního času tvého počítače. Token se správným podpisem, ale s vypršelou platností, se hlásí jako vypršelý, nikoli jako platný.
Klíče a formáty
Pro podepisování nástroj přijímá bloky PKCS#8 PRIVATE KEY, PKCS#1 RSA PRIVATE KEY a SEC1 EC PRIVATE KEY (uvnitř se převedou na PKCS#8) a soukromé JWK. Klíče chráněné heslem je nutné nejdřív exportovat bez hesla. Tlačítko Vygenerovat testovací klíč vytvoří pro algoritmy HS náhodné tajemství o velikosti hashe, pro RS a PS pár klíčů RSA o 2048 bitech, pro ES odpovídající křivku nebo pár Ed25519. Klíče dostaneš ve formátu PEM i JWK a doplní se na obou stranách, takže celý postup (podepsat a ověřit) funguje okamžitě.
Podpisy odpovídají RFC 7515 a RFC 7518: RSA-PSS používá sůl stejně dlouhou jako hash a podpisy ECDSA jsou prosté zřetězení r||s. Implementace reprodukuje příklad HS256 z RFC 7515, příloha A.1.
Bezpečnostní poznámky
- Všechno běží ve tvém prohlížeči pomocí Web Crypto API. Tokeny ani klíče se nikam neposílají, přesto raději používej testovací klíče než produkční tajemství.
alg: nonenení nikdy podepsaný a nikdy se nepřijímá.- Tajemství HMAC by mělo být přinejmenším tak dlouhé jako hash (32 bajtů u HS256). Kratší tajemství vyvolá varování.
- Podpis dokládá integritu a původ, ne to, že jsou claims vhodné: servery musí navíc kontrolovat
iss,auda rozsahy oprávnění.
Časté dotazy
V čem se liší HS256 od RS256?
HS256 používá jedno sdílené tajemství k podepisování i k ověřování, takže každý, kdo token ověřuje, by ho mohl i padělat. RS256 (a také PS256, ES256, EdDSA) podepisuje soukromým klíčem a ověřuje veřejným klíčem, který lze bezpečně zveřejnit.
Proč se i při platném podpisu zobrazí chyba?
Protože token je mimo dobu své platnosti: exp je v minulosti nebo nbf v budoucnosti. Kontrola podpisu a kontrola času se hlásí zvlášť.
Proč se alg „none“ odmítá?
Nepodepsaný token může vytvořit kdokoli. Jeho přijímání bylo klasickou zranitelností knihoven JWT, proto ho tento nástroj odmítá při podepisování i při ověřování.
Mohu použít vlastní klíč RSA nebo EC?
Ano. K podpisu vlož soukromý klíč jako PEM nebo JWK a k ověření veřejný klíč. Nástroj zkontroluje, zda typ klíče a křivka odpovídají zvolenému algoritmu.
Proč je EdDSA zakázáno?
Tvůj prohlížeč zatím nepodporuje Ed25519 ve Web Crypto. Aktuální verze Chrome, Edge, Firefoxu a Safari ho podporují.
Související nástroje
- JWT dekodér Dekóduj hlavičku a obsah JWT, zobraz exp, iat a nbf jako data a ověř podpis HS256, RS256, PS256, ES256 či EdDSA přímo ve svém prohlížeči.
- Generátor HMAC Vypočítej HMAC-SHA1, SHA-256, SHA-384 nebo SHA-512 s klíčem v textu, hex nebo Base64, získej výstup v hex a Base64 a zkontroluj podpis webhooku v prohlížeči.
- Převodník Unix timestampu Převeď Unix timestamp v sekundách nebo milisekundách na čitelné datum v místním čase, UTC a ISO 8601 a libovolné datum převeď zpět na epoch čas.
- Formátovač a validátor JSON Bezplatný formátovač a validátor JSON, který zpřehlední, minifikuje a ověří JSON ve tvém prohlížeči a syntaktické chyby hlásí s řádkem a sloupcem.