JWT-avkodare
Kontrollerar signaturen...
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/ES512 |
Offentlig ECDSA-nyckel |
PS256/PS384/PS512 |
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
Webpack-konfigurationsgenerator
Skapa en webpack.config.js för webpack 5 från ett kort formulär: ange entry, output-mapp och mode, och slå sedan på TypeScript, Babel, en CSS-loader, HtmlWebpackPlugin och en dev-server.
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.
Generator för platshållarbilder
Skapa en bild på 1–4000 px med egna färger och text, ladda ned PNG eller kopiera webbadress och HTML.
Slug-generator
Omvandla valfri titel eller fras till en URL-säker slug. Gemener, bindestrecksseparerad, accentfri, valfri stoppord, Unicode-medveten.
SQL till NoSQL
Gör om en enda SQL-SELECT-sats till en MongoDB-find()-fråga. Mappar kolumner, WHERE (=, >, <, >=, <=, !=), AND/OR, ORDER BY och LIMIT. Ingen JOIN, GROUP BY eller aggregering.
SVG-blobgenerator
Generera organiska, slumpmässiga SVG-blobformer med justerbar komplexitet, kontrast och seed. Kopiera SVG-pathen för bakgrunder, hero-sektioner och avatarmasker.
Verktyget finns på andra språk
- Dekoder JWT [PL]
- JWTデコーダ [JA]
- ตัวถอดรหัส JWT [TH]
- Mã giải mã JWT [VI]
- JWT-Dekoder [DE]
- JWT 해독기 [KO]
- Decodificador JWT [PT]
- Decodificador JWT [ES]
- مُفكّك JWT [AR]
- Decoder JWT [ID]
- JWT-decoder [NL]
- Décodeur JWT [FR]
- JWT Decoder [EN]
- Decoder JWT [IT]
- Декодировщик JWT [RU]
- JWT Dekoderi [TR]
- JWT 解码器 [ZH]