JWT-avkodare
Klistra in en JWT (tre base64url-kodade delar åtskilda av punkter), så visar avkodaren headern, payloaden och signaturen – avkodade och snyggt formaterade – tillsammans med den upptäckta algoritmen, tokenets utgångstid i din lokala tid och om nbf (not-before), iat (issued-at) och exp (expiry) är konsekventa. Valfri signaturverifiering om du har hemligheten eller den offentliga nyckeln.
Så avkodar du en JWT
-
1
Klistra in tokenet
Tre base64url-strängar åtskilda av `.` (header.payload.signatur).
-
2
Läs den avkodade headern
Algoritm, typ, nyckel-ID (`kid`). Algoritmen anger vilken nyckeltyp som krävs för verifiering.
-
3
Läs payloaden
Standardclaims (`iss`, `sub`, `aud`, `exp`, `iat`, `nbf`, `jti`) plus eventuella anpassade claims som din applikation utfärdar.
-
4
Verifiera (valfritt)
Ange HMAC-hemligheten (för HS256/384/512) eller den offentliga nyckeln (för RS256, ES256 osv.) för att bekräfta att signaturen är giltig.
Anatomi av en JWT
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
.
eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkFsaWNlIiwiaWF0IjoxNjAwMDAwMDAwfQ
.
SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
Varje segment är kodat med Base64URL (inte standard Base64). Headern har formatet JSON, till exempel {"alg":"HS256","typ":"JWT"}; payloaden har samma format, till exempel {"sub":"1234567890","name":"Alice","iat":1600000000}; och signaturen är en HMAC- eller RSA-signatur för header.payload.
Standardclaims (RFC 7519)
| Claim | Namn | Anmärkningar |
|---|---|---|
iss |
Utfärdare | Vem som utfärdade tokenet |
sub |
Subjekt | Vem tokenet handlar om |
aud |
Mottagare | Vem tokenet är avsett för |
exp |
Utgångstid | Unix-tidsstämpel; avvisas efter denna tid |
nbf |
Inte före | Unix-tidsstämpel; avvisas före denna tid |
iat |
Utfärdat vid | Unix-tidsstämpel för när tokenet skapades |
jti |
JWT-ID | Unik identifierare för återkallningslistor |
Algoritmer som stöds
alg-värde |
Nyckeltyp |
|---|---|
HS256/HS384/HS512 |
Delad HMAC-hemlighet |
RS256/RS384/RS512 |
Offentlig RSA-nyckel |
ES256/ES384 |
Offentlig ECDSA-nyckel |
PS256/PS384 |
Offentlig RSA-PSS-nyckel |
EdDSA / Ed25519 |
Edwards-kurva |
none |
Lita aldrig på detta, osignerade token |
Fällan alg: none
Tidiga JWT-bibliotek tillät "alg": "none"-token och godtog dem naivt som giltiga. Gör alltid följande:
- Vitlista de algoritmer som din applikation accepterar.
- Avvisa
alg: noneovillkorligen. - Avvisa
alg: HS256när din verifieringskod förväntar sigRS256(attacken med ”algoritmförväxling”).
Vad JWT inte är
- Inte krypterat. Headern och payloaden är base64-kodade, vilket är trivialt att avkoda. Lägg aldrig hemligheter i en JWT utan att kapsla in den i JWE.
- Inte återkallbart som standard. När en JWT väl är utfärdad är den giltig fram till
exp. För återkallelse behöver du en svartlista eller kort giltighetstid plus uppdateringstoken. - Inte en ersättning för sessionscookies i alla användningsfall. Ogenomskinliga token som lagras på serversidan är ofta enklare och säkrare.
Vanliga misstag
- Att lita på headern.
kidochalgkommer från själva tokenet. En komprometterad server kan sätta dem godtyckligt; validera alltid mot en fast lista. - Att ignorera avvikelser i
nbfochiat. Klockdrift gör attiat > nowkan inträffa. Tillåt en liten marginal (30–60 s). - Att logga hela JWT:er. Payloaden innehåller ofta användar-ID:n, e-postadresser och behörigheter, PII som inte bör hamna i stdout.
- Att använda HS256 med en svag hemlighet. En hemlighet på 16 tecken kan knäckas med brute force på några minuter. Använd minst 256 bitar slumpmässig entropi.
Vanliga frågor
Nej. Avkodningen sker i din webbläsare. Tokenet förvaras lokalt – vilket är viktigt eftersom JWT:er ofta innehåller sessionsdata, användar-ID:er och behörigheter.
Ja. Om du klistrar in den delade HMAC-secreten eller den PEM-kodade offentliga nyckeln sker verifieringen i din webbläsare. Nyckeln lämnar aldrig din dator.
Det innebär att tokenet inte är signerat. Acceptera aldrig sådana tokens i produktion – de kan lätt förfalskas. Flera betydande CVE-fejl handlade specifikt om bibliotek som standard accepterade alg: none.
JWT-signering bekräftar äkthet, inte sekretess. Headern och payload är kodade med Base64URL, vilket kan omvändas. För säkerhetens skull bör man använda JWE (JSON Web Encryption) runt JWT eller undvika att inkludera känslig data i payload.
Relaterade verktyg
ASCII-tabellreferens
Full ASCII-tabell från 0 till 127 med decimal-, hex-, oktal- och binärvärden samt notation för numeriska HTML-referenser, inklusive NUL, LF och DEL.
HTML-teckenreferens
En sökbar lista över HTML-entiteter med deras namngivna och numeriska koder samt kopiering med ett klick för specialtecken och symboler.
Referens för kortkommandon
Sök dokumenterade standardkommandon för VS Code, Chrome och Bash med GNU Readline i macOS, Windows och Linux.
HTML-formaterare
Formatera HTML lokalt i webbläsaren med indrag på två eller fyra blanksteg. HTML laddas inte upp eller valideras.
E-postvalidator
Validera en e-postadress: RFC 5322-syntaxkontroll, live-slagning av MX-poster samt detaljer om lokal del, domän och längd. Ingen e-post skickas.
EditorConfig-generator
Generera en .editorconfig-fil med dina regler för indragsstil och -storlek, radslut, teckenuppsättning och blanksteg för enhetlig formatering i alla IDE:er och editorer.
Verktyget finns på andra språk
- Mã giải mã JWT [VI]
- Decodificador JWT [ES]
- Decodificador JWT [PT]
- مُفكّك JWT [AR]
- JWTデコーダ [JA]
- ตัวถอดรหัส JWT [TH]
- JWT-Dekoder [DE]
- JWT 해독기 [KO]
- JWT-decoder [NL]
- Décodeur JWT [FR]
- Decoder JWT [ID]
- Dekoder JWT [PL]
- JWT 解码器 [ZH]
- JWT Decoder [EN]
- Decoder JWT [IT]
- Декодировщик JWT [RU]
- JWT Dekoderi [TR]