JWT-dekoder
Afkod header og payload i et JWT, læs exp, iat og nbf som datoer, og verificér HS256-, RS256-, PS256-, ES256- eller EdDSA-signaturer lokalt i din browser.
Tokens er legitimationsoplysninger. Dette værktøj afkoder og verificerer dem i din browser og sender dem aldrig nogen steder hen.
Header
Payload
| Claim | Værdi | Dato | Status |
|---|
- Algoritme (alg)
- —
- Signatur (Base64url)
- —
Verificér signaturen
HS256/384/512: indtast den delte hemmelighed. RS, PS, ES (256/384/512) og EdDSA: indsæt den offentlige nøgle som PEM (public key, RSA public key eller certifikat) eller JWK (et JWK Set matches via kid).
Sådan afkoder du et JWT
- Indsæt tokenet i JSON Web Token. En hel
Authorization: Bearer …-værdi virker også: præfiksetBearerog eventuelle linjeskift fjernes. - Tokenet afkodes, mens du skriver (eller klik på Afkod). Header og Payload vises som formateret JSON, hver med sin egen Kopiér-knap.
- Læs tabellen Tidsclaims:
exp,nbfogiatvises med den rå værdi, datoen i din tidszone, en relativ tid (»om 3 timer«, »for 2 dage siden«) og en status som Udløbet eller Endnu ikke gyldigt. - Tjek advarslerne over resultaterne, for eksempel hvis
algernone, eller hvis en dato ligner millisekunder. - Vil du kontrollere signaturen, så udfyld nøglen under Verificér signaturen og klik på Verificér signatur.
At afkode er ikke det samme som at verificere
Et JWT består af tre Base64url-dele adskilt af punktummer: header.payload.signature. Header og payload er kun kodet, ikke krypteret, så alle, der har tokenet, kan læse dem, og dette værktøj kan afkode ethvert token uden nøgle. Det betyder også, at en afkodet payload ikke beviser noget: nogen kan have redigeret den. Kun en gyldig signatur viser, at tokenet er udstedt af ejeren af nøglen, og at det ikke er ændret siden. Statuslinjen skriver derfor »Afkodet (signaturen er ikke verificeret)«, indtil du verificerer den.
Et token med fem dele er et JWE (krypteret JWT). Indholdet kan ikke læses uden dekrypteringsnøglen, og værktøjet fortæller dig det.
Sådan verificerer du signaturen
- HS256, HS384, HS512 (HMAC): indtast den delte Hemmelighed. Brug Format for hemmeligheden til at angive, om den er almindelig tekst (UTF-8) eller Base64/Base64url, da nogle udbydere gemmer hemmeligheder i Base64. Du kan også indsætte en JWK af typen
oct. Hvis hemmeligheden er kortere end hashværdien (32 byte for HS256), gør værktøjet opmærksom på, at den ligger under minimum i RFC 7518. - RS256/384/512, PS256/384/512, ES256/384/512 og EdDSA: indsæt den Offentlig nøgle (PEM eller JWK). Accepterede PEM-blokke er
PUBLIC KEY,RSA PUBLIC KEYogCERTIFICATE(nøglen læses fra X.509-certifikatet). En JWK eller et helt JWK Set virker også: den nøgle, hviskidsvarer til headeren, bruges. Private nøgler afvises; en verifikation har aldrig brug for dem. EdDSA understøtter Ed25519 i browsere, hvor Web Crypto implementerer den.
Verificeringen bruger browserens Web Crypto API. Resultatet »Ugyldig signatur« betyder, at nøglen er forkert, eller at tokenet er ændret. Bemærk, at algoritmen hentes fra tokenets header: en rigtig server skal i stedet fastlægge den forventede algoritme i sin konfiguration, ellers kan en angriber vælge den.
Sikkerhedsnoter
- Tokens er legitimationsoplysninger. Den, der har et gyldigt adgangstoken, kan som regel handle som ejeren, indtil det udløber. Dette værktøj afkoder og verificerer alt i din browser og sender aldrig tokenet eller nøglen nogen steder hen. Undgå alligevel at indsætte produktionstokens i værktøjer, du ikke selv kan inspicere.
alg: nonebetyder, at tokenet ikke er signeret. Alle kan forfalske et sådant token, og en server skal afvise det. Værktøjet viser en advarsel og nægter at »verificere« et sådant token.- Tidskontrollerne bruger din computers ur uden nogen tolerance; servere tillader ofte et minut eller to i urafvigelse.
- JWT-datoer (NumericDate) er sekunder siden 1. januar 1970 UTC. En værdi med 13 cifre er sandsynligvis i millisekunder, hvilket er en almindelig fejl.
Ofte stillede spørgsmål
Kan værktøjet fortælle mig, om et token er gyldigt?
Det kan fortælle dig, om signaturen passer til en nøgle, du angiver, og om exp og nbf er opfyldt lige nu. Om tokenet bliver accepteret, afhænger også af kontroller, som kun serveren kender: forventet udsteder (iss), målgruppe (aud), algoritme og tilbagekaldelse.
Hvorfor mislykkes verificeringen, selvom hemmeligheden er rigtig?
Tjek Format for hemmeligheden: en Base64-hemmelighed indtastet som tekst giver en anden nøgle. Sørg også for, at der ikke er kommet et mellemrum eller et linjeskift med i hemmeligheden, da HMAC-nøgler sammenlignes byte for byte.
Hvad er forskellen på RS256, PS256 og ES256?
Alle tre er signaturer med offentlig nøgle og SHA-256. RS256 bruger RSA med PKCS#1 v1.5-padding, PS256 bruger RSA med PSS-padding, og ES256 bruger ECDSA på P-256-kurven, hvilket giver meget kortere signaturer.
Hvor finder jeg en udbyders offentlige nøgle?
Identitetsudbydere udgiver et JWKS (JSON Web Key Set), som oftest er linket fra /.well-known/openid-configuration under jwks_uri. Åbn det selv, og indsæt JSON her; værktøjet vælger nøglen via kid og henter aldrig noget.
Er det sikkert at indsætte mit token her?
Tokenet bliver på din enhed: afkodning og verificering sker lokalt, og intet uploades. Vil du være ekstra forsigtig, så brug et udløbet token eller et testtoken, hvis du kun skal se strukturen.
Relaterede værktøjer
- HMAC-generator Beregn en HMAC-SHA1, SHA-256, SHA-384 eller SHA-512 med en nøgle som tekst, hex eller Base64, få hex- og Base64-output, og tjek en webhook-signatur.
- Base64-kodning og -afkodning Gratis Base64-kodning og -afkodning med fuld UTF-8-understøttelse og URL-sikker base64url. Kører helt i din browser, intet uploades.
- Unix-tidsstempel-omregner Omregn Unix-tidsstempler i sekunder eller millisekunder til læselige datoer i lokal tid, UTC og ISO 8601, og omregn enhver dato tilbage til epoch-tid.
- JSON-formatering og -validering Gratis JSON-formatering og -validering, der gør JSON pæn, minificerer og tjekker den i din browser, med syntaksfejl angivet med linje og kolonne.