avkoda | inspektera | verifiera

> avkoda | inspektera | verifiera <

// Avkoda och inspektera JSON Web Tokens (JWT) direkt

[SÄKERT]

Lokal Bearbetning

100% klientsides JWT-avkodning. Dina tokens lämnar aldrig din webbläsare.

[DIREKT]

Auto-avkodning

Avkoda JWT-tokens automatiskt vid inklistring eller skrivning.

[GRATIS]

Fullständig Tokeninspektion

Visa header, payload och signatur. Kontrollera algoritm och utgångsdatum.

// OM JWT-AVKODNING

JWT-struktur:

En JSON Web Token (JWT) består av tre Base64URL-kodade delar separerade med punkter: header.payload.signatur. Headern anger algoritm och tokentyp. Payloaden innehåller anspråk (data). Signaturen verifierar tokenets integritet.

Exempel:

eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0In0.signature → {"alg":"HS256"} + {"sub":"1234"}

Vanliga Användningsfall:

  • >Felsökning av autentiseringstokens i webbapplikationer
  • >Inspektion av OAuth 2.0 och OpenID Connect-tokens
  • >Verifiering av tokens utgångsdatum och anspråk
  • >Förståelse av JWT-struktur enligt RFC 7519
  • >Kontroll av Base64URL-kodningsintegritet

>> vanliga frågor

F: Vad är en JSON Web Token (JWT)?

S: JWT (JSON Web Token) är en öppen standard (RFC 7519) för säker överföring av information mellan parter som ett JSON-objekt. Den är kompakt, URL-säker och används ofta för autentisering.

F: Vilka är de tre delarna av en JWT?

S: En JWT består av tre delar separerade med punkter: Header (algoritm och typ), Payload (anspråk och data) och Signatur (verifieringshash). Varje del är Base64URL-kodad.

F: Kan en JWT avkodas utan den hemliga nyckeln?

S: Ja, headern och payloaden i en JWT kan avkodas av vem som helst eftersom de helt enkelt är Base64URL-kodade (inte krypterade). Den hemliga nyckeln behövs bara för att verifiera signaturen.

F: Vad är skillnaden mellan JWT och sessionsbaserad autentisering?

S: Sessioner lagrar tillstånd på servern med en sessions-ID-cookie. JWT:er är tillståndslösa — tokenet självt innehåller all nödvändig information.

F: Hur fungerar JWT-utgångsdatum?

S: exp-anspråket i JWT-payloaden anger utgångstiden som en Unix-tidsstämpel. Efter denna tid bör tokenet anses ogiltigt.

// Vanliga JWT-signaturalgoritmer

Värdet alg i huvudet anger hur signaturen skapas. HS* använder en delad hemlighet; RS*, PS*, ES* och EdDSA använder nyckelpar.

algAlgoritm
HS256HMAC + SHA-256
HS512HMAC + SHA-512
RS256RSA PKCS#1 v1.5 + SHA-256
PS256RSASSA-PSS + SHA-256
ES256ECDSA P-256 + SHA-256
EdDSAEd25519

// Verifiera JWT i kod

Enbart avkodning verifierar ingenting. Ange alltid uttryckligen tillåtna algoritmer vid verifiering.

Node.js (jsonwebtoken)   jwt.verify(token, secret, { algorithms: ['HS256'] })
Python (PyJWT)           jwt.decode(token, key, algorithms=["HS256"])
PHP (firebase/php-jwt)   JWT::decode($token, new Key($key, 'HS256'))
Go (golang-jwt)          jwt.Parse(token, keyFunc, jwt.WithValidMethods([]string{"HS256"}))
Java (jjwt)              Jwts.parser().verifyWith(key).build().parseSignedClaims(token)

>> Fler frågor

F: Vad betyder standardclaims iss, sub, aud, exp, nbf, iat och jti?

S: iss är utfärdaren, sub subjektet (oftast användar-id), aud avsedd mottagare, exp utgångstid, nbf giltighetens start, iat utfärdandetid och jti ett unikt token-id. Tider anges i Unix-sekunder.

F: Är en JWT krypterad?

S: En vanlig signerad JWT (JWS) är inte krypterad, bara Base64URL-kodad: vem som helst kan läsa innehållet. Signaturen skyddar bara mot manipulering. Lägg inte känsliga data i den eller använd en krypterad JWE.

F: Hur verifierar jag signaturen i en JWT?

S: Du behöver nyckeln: den delade hemligheten för HS256 eller den publika nyckeln för RS256/ES256. Servern räknar om signaturen för Huvud.Nyttolast och jämför. Den här avkodaren körs i webbläsaren och verifierar inte signaturen åt dig – använd ett beprövat bibliotek.

F: Vilka vanliga säkerhetsmisstag finns med JWT?

S: Vanliga: lita på alg från själva token (särskilt none), svaga HS256-hemligheter, ingen kontroll av exp, iss och aud, känsliga data i nyttolasten och långlivade token i localStorage.

// ANDRA SPRÅK