JWT generátor és ellenőrző
Hozz létre és ellenőrizz JSON Web Tokeneket HS256, RS256, PS256, ES256 vagy EdDSA algoritmussal. Claimek szerkesztése, exp és iat beállítása a böngésződben.
A kulcsok és a tokenek titkok. Minden aláírás és ellenőrzés helyben, a böngésződ Web Crypto API-jával történik: semmi nem kerül feltöltésre.
Aláírt JWT létrehozása
Ez a böngésző nem támogatja az Ed25519-et a Web Cryptóban, ezért az EdDSA nem érhető el.
A tesztkulcsokat a böngésződben generáljuk, és lent kitöltjük. A privát kulcsot vagy a titkot tartsd magadnál; csak a nyilvános kulcsot oszd meg.
JWT ellenőrzése
Hogyan hozz létre aláírt JWT-t
- Válaszd ki az Algoritmust: HS256/384/512 (megosztott titok), RS256/384/512 vagy PS256/384/512 (RSA), ES256/384/512 (ECDSA a P-256, P-384 vagy P-521 görbén), illetve EdDSA (Ed25519, ha a böngésződ támogatja).
- Szerkeszd a Fejléc (JSON) és a Payload (JSON claimek) mezőt. Az
algmező mindig a kiválasztott algoritmust követi, atypalapértékeJWT. - Az időpontgombokkal vehetsz fel dátumokat: iat = most, nbf = most, vagy válassz egy késleltetést, például „1 óra múlva”, és kattints az Exp beállítása gombra. Az értékek NumericDate-ek: az 1970. január 1-jei UTC óta eltelt másodpercek.
- Add meg a Titkot (HS algoritmusokhoz, szövegként vagy Base64/Base64url formában a Titok formátuma mezőben) vagy a Privát kulcsot (PEM vagy JWK). Még nincs kulcsod? Kattints a Tesztkulcs generálása gombra.
- Kattints a Token aláírása gombra, majd másold ki az eredményt a Másolás gombbal, vagy kattints az A token ellenőrzése gombra, hogy rögtön megnézd.
Hogyan ellenőrizz egy JWT-t
- Illeszd be a tokent az Ellenőrizendő token mezőbe.
- Válaszd ki az Elvárt algoritmust. Ha az „A token fejlécéből” beállításon hagyod, az eszköz mindent elfogad, amit a fejléc megad, a
nonekivételével; ha konkrét algoritmust választasz, az eszköz minden másképp aláírt tokent elutasít, ahogyan egy valódi szervernek is tennie kell. - Add meg a titkot vagy a Nyilvános kulcsot (PEM vagy JWK): egy
PUBLIC KEY,RSA PUBLIC KEYvagyCERTIFICATEPEM-blokkot, egy JWK-t vagy egy JWK Set-et (utóbbiból azt a kulcsot használja az eszköz, amelynek akidértéke egyezik a fejlécben szereplővel). - Szükség esetén állíts be Órakülönbség-tűrést (másodperc) a kisebb óraeltérések kezelésére, majd kattints a Token ellenőrzése gombra.
Az eredmény megmondja, hogy az aláírás érvényes-e, majd az exp (lejárat) és az nbf (ekkortól érvényes) értéket összeveti a számítógéped aktuális idejével. Az a token, amelynek az aláírása helyes, de a lejárata a múltban van, lejártként jelenik meg, nem érvényesként.
Kulcsok és formátumok
Az aláíráshoz az eszköz elfogadja a PKCS#8 PRIVATE KEY blokkokat, a PKCS#1 RSA PRIVATE KEY és a SEC1 EC PRIVATE KEY blokkokat (ezeket belsőleg PKCS#8-ra alakítja), valamint a privát JWK-kat. A jelszóval védett kulcsokat előbb jelszó nélkül kell exportálni. A Tesztkulcs generálása a HS algoritmusokhoz a hash méretének megfelelő véletlen titkot, az RS és PS algoritmusokhoz 2048 bites RSA-kulcspárt, az ES-hez a megfelelő görbét, az EdDSA-hoz pedig Ed25519-párt hoz létre. A kulcsokat PEM és JWK formában is megkapod, és mindkét oldalon kitöltődnek, így az aláírás–ellenőrzés kör azonnal működik.
Az aláírások az RFC 7515 és az RFC 7518 szerint készülnek: az RSA-PSS a hash hosszával megegyező sót használ, az ECDSA-aláírások pedig a nyers r||s összefűzések. A megvalósítás reprodukálja az RFC 7515 A.1 függelékének HS256 példáját.
Biztonsági tudnivalók
- Minden a böngésződben, a Web Crypto API-val fut. Sem a tokenek, sem a kulcsok nem kerülnek elküldésre, de azért az éles titkok helyett inkább tesztkulcsokat használj.
- Az
alg: nonesoha nincs aláírva, és soha nem fogadjuk el. - A HMAC-titkoknak legalább olyan hosszúnak kell lenniük, mint a hash (HS256-nál 32 bájt). A rövidebb titok figyelmeztetést vált ki.
- Az aláírás az integritást és az eredetet bizonyítja, nem azt, hogy a claimek helyesek: a szervernek ellenőriznie kell az
iss, azaudértéket és a jogosultsági köröket (scope) is.
Gyakori kérdések
Mi a különbség a HS256 és az RS256 között?
A HS256 egyetlen megosztott titkot használ az aláíráshoz és az ellenőrzéshez is, így minden ellenőrző tokent is hamisíthatna. Az RS256 (és a PS256, ES256, EdDSA) privát kulccsal ír alá, és olyan nyilvános kulccsal ellenőriz, amelyet nyugodtan közzé lehet tenni.
Miért jelez hibát egy érvényes aláírás is?
Mert a token az érvényességi időszakán kívül van: az exp a múltban, vagy az nbf a jövőben van. Az aláírás-ellenőrzést és az időellenőrzést külön jelezzük.
Miért utasítja el az eszköz az „alg: none” értéket?
Aláíratlan tokent bárki létrehozhat. Elfogadása a JWT-könyvtárak klasszikus sebezhetősége volt, ezért ez az eszköz az aláírásnál és az ellenőrzésnél is elutasítja.
Használhatom a saját RSA- vagy EC-kulcsomat?
Igen. Az aláíráshoz illeszd be a privát kulcsot PEM vagy JWK formában, az ellenőrzéshez a nyilvános kulcsot. Az eszköz ellenőrzi, hogy a kulcs típusa és görbéje megfelel-e a kiválasztott algoritmusnak.
Miért van letiltva az EdDSA?
A böngésződ még nem támogatja az Ed25519-et a Web Cryptóban. A Chrome, az Edge, a Firefox és a Safari újabb verziói már igen.
Kapcsolódó eszközök
- JWT dekódoló Dekódold a JWT fejlécét és payloadját, olvasd ki az exp, iat és nbf értékeket dátumként, és ellenőrizd az aláírást (HS256, RS256, ES256, EdDSA) a böngésződben.
- HMAC generátor Számolj HMAC-SHA1, SHA-256, SHA-384 vagy SHA-512 értéket szöveges, hex vagy Base64 kulccsal, és ellenőrizz webhook-aláírást a böngésződben.
- Unix időbélyeg átváltó Váltsd át a másodpercben vagy ezredmásodpercben megadott Unix időbélyegeket olvasható dátummá helyi időben, UTC-ben és ISO 8601 formában, és fordítva.
- JSON formázó és validátor Ingyenes JSON formázó és validátor, amely a böngésződben szépít, tömörít és ellenőriz JSON-t, a szintaxishibákat sor és oszlop szerint jelezve.