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.
A tokenek hitelesítő adatok. Ez az eszköz a böngésződben dekódolja és ellenőrzi őket, és sehová nem küldi el.
Fejléc
Payload
| Claim | Érték | Dátum | Állapot |
|---|
- Algoritmus (alg)
- —
- Aláírás (Base64url)
- —
Aláírás ellenőrzése
HS256/384/512: add meg a megosztott titkot. RS, PS, ES (256/384/512) és EdDSA: illeszd be a nyilvános kulcsot PEM (public key, RSA public key vagy tanúsítvány) vagy JWK formátumban (a JWK Set-ből a kid alapján választ az eszköz).
Hogyan dekódolj egy JWT-t
- Illeszd be a tokent a JSON Web Token mezőbe. Egy teljes
Authorization: Bearer …érték is megfelel: aBearerelőtagot és a sortöréseket az eszköz eltávolítja. - A token gépelés közben dekódolódik (vagy kattints a Dekódolás gombra). A Fejléc és a Payload formázott JSON-ként jelenik meg, mindkettőhöz külön Másolás gomb tartozik.
- Nézd meg az Időpontot jelölő claimek táblázatát: az
exp,nbfésiatnyers értéke, a dátum a te időzónádban, egy relatív időmegjelölés („3 óra múlva”, „2 napja”) és egy állapot, például Lejárt vagy Még nem érvényes látható. - Olvasd el az eredmény fölött megjelenő figyelmeztetéseket, például ha az
algértékenone, vagy ha egy dátum ezredmásodpercnek tűnik. - Az aláírás ellenőrzéséhez add meg a kulcsot az Aláírás ellenőrzése részben, majd kattints az Aláírás ellenőrzése gombra.
A dekódolás még nem ellenőrzés
A JWT három, ponttal elválasztott Base64url részből áll: fejléc.payload.aláírás. A fejlécet és a payloadot csak kódolják, nem titkosítják, ezért bárki elolvashatja őket, aki birtokolja a tokent, és ez az eszköz is kulcs nélkül dekódol bármilyen tokent. Ebből az is következik, hogy a dekódolt payload önmagában semmit sem bizonyít: valaki átírhatta. Csak az érvényes aláírás mutatja meg, hogy a tokent a kulcs birtokosa állította ki, és azóta nem módosították. Ezért áll az állapotsorban az, hogy „Dekódolva (az aláírás nincs ellenőrizve)”, amíg le nem futtatod az ellenőrzést.
Az öt részből álló token JWE (titkosított JWT): a tartalma a visszafejtő kulcs nélkül nem olvasható, és az eszköz ezt jelzi is.
Az aláírás ellenőrzése
- HS256, HS384, HS512 (HMAC): add meg a megosztott Titkot. A Titok formátuma mezőben választhatod ki, hogy sima szöveg (UTF-8) vagy Base64/Base64url, mert egyes szolgáltatók Base64-ben tárolják a titkokat. Beilleszthetsz
octtípusú JWK-t is. Ha a titok rövidebb a hash kimeneténél (HS256 esetén 32 bájt), az eszköz megjegyzi, hogy az RFC 7518 szerinti minimum alatt van. - RS256/384/512, PS256/384/512, ES256/384/512 és EdDSA: illeszd be a Nyilvános kulcsot (PEM vagy JWK). Elfogadott PEM-blokkok:
PUBLIC KEY,RSA PUBLIC KEYésCERTIFICATE(ilyenkor a kulcsot az X.509 tanúsítványból olvassa ki az eszköz). Működik egy JWK vagy egy teljes JWK Set is: azt a kulcsot használja az eszköz, amelynek akidértéke megegyezik a fejlécben szereplővel. A privát kulcsot elutasítja, mert az ellenőrzéshez soha nincs rá szükség. Az EdDSA az Ed25519-et támogatja azokban a böngészőkben, amelyek Web Crypto-ja ismeri.
Az ellenőrzés a böngésző Web Crypto API-ját használja. Az „Érvénytelen aláírás” eredmény azt jelenti, hogy a kulcs hibás, vagy a tokent módosították. Vedd figyelembe, hogy az algoritmust a token fejlécéből veszi az eszköz: egy valódi szervernek ehelyett a konfigurációjában kell rögzítenie az elvárt algoritmust, különben egy támadó választhat.
Biztonsági tudnivalók
- A tokenek hitelesítő adatok. Aki érvényes hozzáférési tokent birtokol, az általában a lejáratig a tulajdonosa nevében léphet fel. Ez az eszköz mindent a böngésződben dekódol és ellenőriz, a tokent és a kulcsot sehová nem küldi el. Ennek ellenére kerüld, hogy éles tokeneket illessz be olyan eszközökbe, amelyeket nem tudsz átvizsgálni.
- Az
alg: noneazt jelenti, hogy a token nincs aláírva. Bárki hamisíthat ilyet, a szervernek pedig vissza kell utasítania. Az eszköz figyelmeztetést mutat, és az ilyen tokent nem „ellenőrzi”. - Az itteni időellenőrzés a számítógéped óráját használja, tűrés nélkül; a szerverek gyakran egy-két perc eltérést megengednek.
- A JWT-dátumok (NumericDate) az 1970. január 1-jei UTC óta eltelt másodpercek. A 13 számjegyű érték valószínűleg ezredmásodperc, ami gyakori programozási hiba.
Gyakori kérdések
Megmondja az eszköz, hogy egy token érvényes-e?
Megmondja, hogy az aláírás egyezik-e a megadott kulccsal, és hogy az exp és az nbf teljesül-e éppen most. Azt, hogy a token elfogadásra kerül-e, olyan ellenőrzések is befolyásolják, amelyeket csak a szerver ismer: az elvárt kiállító (iss), a célközönség (aud), az algoritmus és a visszavonás.
Miért sikertelen az ellenőrzés a helyes titokkal is?
Nézd meg a Titok formátuma beállítást: a szövegként beírt Base64-titok más kulcsot ad. Győződj meg arról is, hogy a titokhoz nem került szóköz vagy sortörés, mert a HMAC-kulcsokat bájtról bájtra hasonlítják össze.
Mi a különbség az RS256, a PS256 és az ES256 között?
Mindhárom nyilvános kulcsú aláírás SHA-256-tal. Az RS256 RSA-t használ PKCS#1 v1.5 kitöltéssel, a PS256 RSA-t PSS kitöltéssel, az ES256 pedig ECDSA-t a P-256 görbén, ami jóval rövidebb aláírást ad.
Hol találom egy szolgáltató nyilvános kulcsát?
Az azonosításszolgáltatók JWKS-t (JSON Web Key Set) tesznek közzé, amelyre általában a /.well-known/openid-configuration címen a jwks_uri mutat. Nyisd meg magad, és illeszd be ide a JSON-t; az eszköz a kid alapján választ kulcsot, és soha nem tölt le semmit.
Biztonságos ide beilleszteni a tokenemet?
A token az eszközödön marad: a dekódolás és az ellenőrzés helyben történik, és semmi nem kerül feltöltésre. Ha extra óvatos vagy, használj lejárt vagy teszttokent, amikor csak a szerkezetét szeretnéd megnézni.
Kapcsolódó eszközök
- 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.
- Base64 kódoló és dekódoló Ingyenes Base64 kódoló és dekódoló teljes UTF-8 támogatással és URL-barát base64url opcióval. A böngésződben fut, semmit nem töltünk fel.
- 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.