JWT-dekoder
Dekod header og payload i en JWT, les exp, iat og nbf som datoer, og verifiser HS256-, RS256-, PS256-, ES256- og EdDSA-signaturer lokalt i nettleseren din.
Tokens er legitimasjon. Dette verktøyet dekoder og verifiserer dem i nettleseren din og sender dem aldri noe sted.
Header
Payload
| Felt | Verdi | Dato | Status |
|---|
- Algoritme (alg)
- —
- Signatur (Base64url)
- —
Verifiser signaturen
HS256/384/512: skriv inn den delte hemmeligheten. RS, PS, ES (256/384/512) og EdDSA: lim inn den offentlige nøkkelen som PEM (public key, RSA public key eller sertifikat) eller JWK (et JWK Set matches på kid).
Slik dekoder du en JWT
- Lim inn tokenen i feltet JSON Web Token. En hel
Authorization: Bearer …-verdi fungerer også: prefiksetBearerog eventuelle linjeskift fjernes. - Tokenen dekodes mens du skriver (eller du kan klikke Dekod). Header og Payload vises som formatert JSON, hver med sin egen Kopier-knapp.
- Les tabellen Tidsfelter:
exp,nbfogiatvises med råverdi, dato i tidssonen din, relativ tid («om 3 timer», «for 2 dager siden») og en status som Utløpt eller Ikke gyldig ennå. - Se på advarslene over resultatet, for eksempel når
algernone, eller når en dato ser ut til å være i millisekunder. - Vil du sjekke signaturen, fyller du inn nøkkelen under Verifiser signaturen og klikker Verifiser signatur.
Å dekode er ikke det samme som å verifisere
En JWT består av tre Base64url-deler atskilt med punktum: header.payload.signature. Header og payload er bare kodet, ikke kryptert, så alle som har tokenen kan lese dem, og dette verktøyet kan dekode hvilken som helst token uten nøkkel. Det betyr også at en dekodet payload ikke beviser noe: noen kan ha endret den. Bare en gyldig signatur viser at tokenen er utstedt av den som har nøkkelen, og at den ikke er endret siden. Statuslinjen sier derfor «Dekodet (signaturen er ikke verifisert)» helt til du verifiserer den.
En token med fem deler er en JWE (kryptert JWT). Innholdet kan ikke leses uten dekrypteringsnøkkelen, og verktøyet forteller deg det.
Slik verifiserer du signaturen
- HS256, HS384, HS512 (HMAC): skriv inn den delte Hemmeligheten. Under Format på hemmeligheten velger du om den er vanlig tekst (UTF-8) eller Base64/Base64url, siden noen leverandører lagrer hemmeligheter som Base64. Du kan også lime inn en JWK av typen
oct. Hvis hemmeligheten er kortere enn hash-utdataen (32 byte for HS256), merker verktøyet at den er under minimumet i RFC 7518. - RS256/384/512, PS256/384/512, ES256/384/512 og EdDSA: lim inn Offentlig nøkkel (PEM eller JWK). Godkjente PEM-blokker er
PUBLIC KEY,RSA PUBLIC KEYogCERTIFICATE(nøkkelen leses da fra X.509-sertifikatet). En JWK eller et helt JWK Set fungerer også: nøkkelen hviskidsamsvarer med headeren, brukes. Private nøkler avvises, for en verifiserer trenger aldri en. EdDSA støtter Ed25519 i nettlesere der Web Crypto har det.
Verifiseringen bruker nettleserens Web Crypto API. Resultatet «Ugyldig signatur» betyr at nøkkelen er feil eller at tokenen er endret. Husk at algoritmen hentes fra token-headeren: en ekte server må i stedet fastsette forventet algoritme i konfigurasjonen, ellers kan en angriper velge den selv.
Sikkerhetsmerknader
- Tokens er legitimasjon. Den som har en gyldig tilgangstoken, kan som regel opptre som eieren helt til den utløper. Dette verktøyet dekoder og verifiserer alt i nettleseren din og sender verken tokenen eller nøkkelen noe sted. Likevel bør du unngå å lime inn tokens fra produksjon i verktøy du ikke kan inspisere.
alg: nonebetyr at tokenen er usignert. Hvem som helst kan forfalske en, og en server må avvise den. Verktøyet viser en advarsel og nekter å «verifisere» en slik token.- Klokkesjekkene her bruker klokken på datamaskinen din uten noen toleranse. Servere tillater ofte et minutt eller to med klokkeavvik.
- JWT-datoer (NumericDate) er sekunder siden 1. januar 1970 UTC. En verdi med 13 sifre er trolig i millisekunder, noe som er en vanlig feil.
Ofte stilte spørsmål
Kan verktøyet si om en token er gyldig?
Det kan si om signaturen samsvarer med en nøkkel du oppgir, og om exp og nbf er oppfylt akkurat nå. Om tokenen blir godtatt, avhenger også av kontroller som bare serveren kjenner til: forventet utsteder (iss), mottaker (aud), algoritme og tilbakekalling.
Hvorfor mislykkes verifiseringen med riktig hemmelighet?
Sjekk Format på hemmeligheten: en Base64-hemmelighet skrevet inn som tekst gir en annen nøkkel. Pass også på at det ikke er lagt til mellomrom eller linjeskift i hemmeligheten, siden HMAC-nøkler sammenlignes byte for byte.
Hva er forskjellen på RS256, PS256 og ES256?
Alle tre er signaturer med offentlig nøkkel og SHA-256. RS256 bruker RSA med PKCS#1 v1.5-polstring, PS256 bruker RSA med PSS-polstring, og ES256 bruker ECDSA på P-256-kurven, som gir mye kortere signaturer.
Hvor finner jeg den offentlige nøkkelen til en leverandør?
Identitetsleverandører publiserer et JWKS (JSON Web Key Set), vanligvis lenket fra /.well-known/openid-configuration under jwks_uri. Åpne det selv og lim inn JSON-en her. Verktøyet velger nøkkelen på kid og henter aldri noe selv.
Er det trygt å lime inn tokenen min her?
Tokenen blir på enheten din: dekoding og verifisering skjer lokalt, og ingenting lastes opp. Vil du være ekstra forsiktig, kan du bruke en utløpt token eller en testtoken når du bare trenger å se strukturen.
Relaterte verktøy
- HMAC-generator Beregn HMAC-SHA1, SHA-256, SHA-384 eller SHA-512 med tekst-, hex- eller Base64-nøkkel, få hex- og Base64-utdata og kontroller en webhook-signatur i nettleseren.
- Base64-koder og -dekoder Gratis Base64-koder og -dekoder med full UTF-8-støtte og valg for URL-trygg base64url. Kjører helt i nettleseren din, ingenting lastes opp.
- Unix-tidsstempel til dato Gjør Unix-tidsstempler i sekunder eller millisekunder om til lesbare datoer i lokal tid, UTC og ISO 8601, og gjør hvilken som helst dato om til epoch-tid igjen.
- JSON-formaterer og -validator Gratis JSON-formaterer og -validator som gjør JSON ryddig, minifiserer og kontrollerer den i nettleseren din, med syntaksfeil oppgitt med linje og kolonne.