JWT-avkodare
Avkoda header och payload i en JWT, läs exp, iat och nbf som datum och verifiera HS256-, RS256-, PS256-, ES256- och EdDSA-signaturer lokalt.
Token är inloggningsuppgifter. Det här verktyget avkodar och verifierar dem i din webbläsare och skickar dem aldrig någonstans.
Header
Payload
| Anspråk | Värde | Datum | Status |
|---|
- Algoritm (alg)
- —
- Signatur (Base64url)
- —
Verifiera signaturen
HS256/384/512: ange den delade hemligheten. RS, PS, ES (256/384/512) och EdDSA: klistra in den publika nyckeln som PEM (public key, RSA public key eller certifikat) eller JWK (i en JWK Set väljs nyckeln efter kid).
Så avkodar du en JWT
- Klistra in din token i fältet JSON Web Token. Ett helt
Authorization: Bearer …-värde fungerar också: prefixetBeareroch eventuella radbrytningar tas bort. - Token avkodas medan du skriver (eller när du klickar på Avkoda). Header och Payload visas som formaterad JSON, var och en med en egen Kopiera-knapp.
- Läs tabellen Tidsanspråk:
exp,nbfochiatvisas med sitt råa värde, datumet i din tidszon, en relativ tid (”om 3 timmar”, ”för 2 dagar sedan”) och en status som Utgången eller Inte giltig än. - Läs varningarna ovanför resultatet, till exempel när
algärnoneeller när ett datum ser ut att vara i millisekunder. - Vill du kontrollera signaturen fyller du i nyckeln under Verifiera signaturen och klickar på Verifiera signatur.
Att avkoda är inte att verifiera
En JWT består av tre Base64url-delar åtskilda av punkter: header.payload.signature. Header och payload är bara kodade, inte krypterade, så vem som helst som har token kan läsa dem, och det här verktyget kan avkoda vilken token som helst utan nyckel. Det betyder också att en avkodad payload inte bevisar någonting: någon kan ha ändrat den. Bara en giltig signatur visar att token utfärdades av den som har nyckeln och att den inte har ändrats sedan dess. Därför står det ”Avkodad (signaturen är inte verifierad)” i statusraden tills du har verifierat den.
En token med fem delar är en JWE (krypterad JWT). Innehållet kan inte läsas utan dekrypteringsnyckeln, och verktyget talar om det för dig.
Verifiera signaturen
- HS256, HS384, HS512 (HMAC): ange den delade hemligheten i fältet Hemlighet. Med Hemlighetens format anger du om den är vanlig text (UTF-8) eller Base64/Base64url, eftersom vissa leverantörer lagrar hemligheter i Base64. Du kan också klistra in en JWK av typen
oct. Om hemligheten är kortare än hashens utdata (32 byte för HS256) påpekar verktyget att den ligger under minimikravet i RFC 7518. - RS256/384/512, PS256/384/512, ES256/384/512 och EdDSA: klistra in nyckeln i Publik nyckel (PEM eller JWK). Godkända PEM-block är
PUBLIC KEY,RSA PUBLIC KEYochCERTIFICATE(nyckeln läses då ur X.509-certifikatet). En JWK eller en hel JWK Set fungerar också: den nyckel varskidmatchar headern används. Privata nycklar avvisas – en verifierare behöver aldrig någon. EdDSA stöder Ed25519 i webbläsare vars Web Crypto har stöd för det.
Verifieringen använder webbläsarens Web Crypto API. Resultatet ”Ogiltig signatur” betyder att nyckeln är fel eller att token har ändrats. Observera att algoritmen hämtas ur token-headern: en riktig server ska i stället låsa den förväntade algoritmen i sin konfiguration, annars kan en angripare välja den själv.
Säkerhet
- Token är inloggningsuppgifter. Den som har en giltig åtkomsttoken kan oftast agera som ägaren tills den går ut. Det här verktyget avkodar och verifierar allt i din webbläsare och skickar aldrig token eller nyckeln någonstans. Undvik ändå att klistra in produktionstoken i verktyg du inte kan granska.
alg: nonebetyder att token är osignerad. Vem som helst kan förfalska en sådan, och en server måste avvisa den. Verktyget visar en varning och vägrar att ”verifiera” en sådan token.- Tidskontrollerna här använder datorns klocka utan någon marginal. Servrar tillåter ofta en eller ett par minuters klockavvikelse.
- JWT-datum (NumericDate) anges i sekunder sedan 1 januari 1970 UTC. Ett värde med 13 siffror är troligen i millisekunder, vilket är en vanlig bugg.
Vanliga frågor
Kan verktyget säga om en token är giltig?
Det kan säga om signaturen stämmer med en nyckel du anger och om exp och nbf är uppfyllda just nu. Om token faktiskt godtas beror också på kontroller som bara servern känner till: förväntad utfärdare (iss), mottagare (aud), algoritm och återkallelse.
Varför misslyckas verifieringen trots rätt hemlighet?
Kontrollera Hemlighetens format: en Base64-hemlighet som skrivs in som text ger en annan nyckel. Se också till att inget mellanslag eller någon radbrytning har kommit med i hemligheten, eftersom HMAC-nycklar jämförs byte för byte.
Vad är skillnaden mellan RS256, PS256 och ES256?
Alla tre är signaturer med publik nyckel och SHA-256. RS256 använder RSA med PKCS#1 v1.5-utfyllnad, PS256 använder RSA med PSS-utfyllnad och ES256 använder ECDSA på kurvan P-256, vilket ger mycket kortare signaturer.
Var hittar jag en leverantörs publika nyckel?
Identitetsleverantörer publicerar en JWKS (JSON Web Key Set), oftast länkad från /.well-known/openid-configuration under jwks_uri. Öppna den själv och klistra in JSON-koden här. Verktyget väljer nyckeln efter kid och hämtar aldrig något.
Är det säkert att klistra in min token här?
Token stannar på din enhet: avkodning och verifiering sker lokalt och inget laddas upp. Vill du vara extra försiktig kan du använda en utgången token eller en testtoken när du bara behöver se strukturen.
Relaterade verktyg
- HMAC-generator Beräkna HMAC-SHA1, SHA-256, SHA-384 eller SHA-512 med en nyckel i text, hex eller Base64, få hex och Base64 och kontrollera en webhook-signatur.
- Base64-kodare och avkodare Gratis Base64-kodare och avkodare med fullt stöd för UTF-8 och ett URL-säkert base64url-läge. Körs helt i din webbläsare, inget laddas upp.
- Unix-tidsstämpel till datum Omvandla Unix-tidsstämplar i sekunder eller millisekunder till läsbara datum i lokal tid, UTC och ISO 8601, och gör om valfritt datum till epoch-tid.
- JSON-formaterare och validerare Gratis JSON-formaterare och validerare som snyggar till, minifierar och kontrollerar JSON i webbläsaren, med syntaxfel angivna med rad och kolumn.