JWT:s uppbyggnad: header, payload och signatur
Avkoda base64url-delarna och förstå varje JWT-fält.
JWT:s uppbyggnad: header, payload och signatur är en gratis lektion i Cryptology Academy på CoddyKit. Detta är lektion 1 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Cryptology Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Cryptology Academy innehåller totalt 4 lektioner.
Vad är en JWT?
En JSON Web Token (JWT) är ett kompakt, URL-säkert tokenformat som definieras i RFC 7519. Det kodar claims (påståenden om ett subjekt) och en kryptografisk signatur i en enda sträng, vilket möjliggör tillståndslös autentisering.
Struktur i tre delar
En JWT har formen: base64url(header).base64url(payload).base64url(signature). Punkten skiljer delarna åt. Headern och payloaden är läsbara (base64url, inte krypterade). Det är endast signaturen som är kryptografisk.
Header
Headern är ett JSON-objekt: {"alg":"HS256","typ":"JWT"}. alg anger signeringsalgoritmen (HS256, RS256, ES256, none). typ är alltid "JWT". Ytterligare headers omfattar kid (nyckel-ID) för val av nyckel.
Payload / claims
Standardiserade registrerade claims: iss (utfärdare), sub (subjekt), aud (målgrupp), exp (utgångstid som Unix-tidsstämpel), nbf (inte före), iat (utfärdad vid), jti (JWT-ID för återkallelse). Egna claims är alla ytterligare nyckel-värdepar.
Avkoda en JWT
import base64, json token = "eyJ..." parts = token.split(".") header = json.loads(base64.urlsafe_b64decode(parts[0]+"==")) payload = json.loads(base64.urlsafe_b64decode(parts[1]+"==")) print(header, payload)
Signaturverifiering
För HS256: HMAC-SHA256(base64url(header)+"."+base64url(payload), secret). Mottagaren beräknar detta på nytt och jämför resultatet med signaturdelen. Om de matchar och token inte har gått ut är token giltig.
Asymmetriska signaturer
För RS256 signerar den privata nyckeln strängen header.payload med RSA-SHA256. Alla som har den publika nyckeln kan verifiera utan den privata nyckeln. Publika nycklar distribueras via JWKS-endpoints (JSON Web Key Set), till exempel /.well-known/jwks.json.
Base64url-kodning
Base64url ersätter + med - och / med _, och utelämnar utfyllnaden =. Det gör JWT:er säkra att använda i URL:er, HTTP-headers och cookies utan procentkodning. Råbytesekvensen är fortfarande inte krypterad — den är bara kodad.
JWT:er är inte krypterade som standard
En JWT-payload är synlig för alla som avkodar den från base64url. Lägg aldrig hemligheter (lösenord, personnummer) i en JWT-payload om Ni inte använder JWE (JSON Web Encryption) med algoritmen "enc" för faktisk kryptering.
Tokens livslängd
Ange exp till en kort tidsperiod (15–60 minuter för åtkomsttokens). Långlivade JWT:er innebär en ackumulerad risk — om de stjäls förblir de giltiga tills de löper ut. Använd refresh tokens (lagrade säkert) för att utfärda nya kortlivade åtkomsttokens.
JWKS-identifiering
Autentiseringsleverantörer (Auth0, Keycloak, Google) publicerar en JWKS-URL. Verifieraren hämtar publika nycklar baserat på kid, cachelagrar dem och verifierar signaturer utan att kontakta utfärdaren för varje förfrågan. Vid nyckelrotation uppdateras JWKS-endpointen.
Snabb kontroll
Vilken del av en JWT innehåller den kryptografiska signaturen?
Sammanfattning
En JWT består av tre base64url-kodade JSON-delar: header (algoritm), payload (claims) och signatur. Payloaden är läsbar — inte krypterad. Nästa steg är att välja mellan HS256 och RS256.
Lär dig Cryptology Academy med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 67
- Lektioner
- 261
Vanliga frågor
Är lektionen ”JWT:s uppbyggnad: header, payload och signatur” gratis?
Ja – hela texten till ”JWT:s uppbyggnad: header, payload och signatur” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Cryptology Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Cryptology Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”JWT:s uppbyggnad: header, payload och signatur”?
Avkoda base64url-delarna och förstå varje JWT-fält. Ni övar på Cryptology Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Cryptology Academy?
Du behöver inga förkunskaper. Utbildningen i Cryptology Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.
Hur lång tid tar lektionen ”JWT:s uppbyggnad: header, payload och signatur”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Cryptology Academy-lektionen?
Ja. Varje Cryptology Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- JWT:s uppbyggnad: header, payload och signatur
- HS256 jämfört med RS256: symmetriska och asymmetriska JWT:er
- JWT-sårbarheter: alg=none och nyckelförväxling
- Bästa praxis för säker JWT-implementation