JWT-generator och verifierare
Skapa och verifiera JSON Web Tokens med HS256, RS256, PS256, ES256 eller EdDSA. Redigera anspråk, sätt exp och iat och kontrollera signaturer lokalt.
Nycklar och token är hemliga. Allt signeras och verifieras lokalt med webbläsarens Web Crypto API: inget laddas upp.
Skapa en signerad JWT
Den här webbläsaren stöder inte Ed25519 i Web Crypto, så EdDSA är inte tillgängligt.
Testnycklar genereras i din webbläsare och fylls i nedan. Behåll den privata nyckeln eller hemligheten för dig själv och dela bara den publika nyckeln.
Verifiera en JWT
Så skapar du en signerad JWT
- Välj Algoritm: HS256/384/512 (delad hemlighet), RS256/384/512 eller PS256/384/512 (RSA), ES256/384/512 (ECDSA på P-256, P-384 eller P-521) eller EdDSA (Ed25519, om din webbläsare stöder det).
- Redigera Header (JSON) och Payload (JSON-anspråk). Fältet
algföljer alltid den valda algoritmen, ochtypärJWTsom standard. - Lägg till datum med knapparna för tidsanspråk: iat = nu, nbf = nu, eller välj en fördröjning som ”om 1 timme” och klicka på Sätt exp. Värdena är NumericDate: sekunder sedan 1 januari 1970 UTC.
- Ange Hemlighet (för HS-algoritmer, som text eller Base64/Base64url under Hemlighetens format) eller Privat nyckel (PEM eller JWK). Har du ingen nyckel än? Klicka på Generera testnyckel.
- Klicka på Signera token och sedan på Kopiera, eller klicka på Verifiera den här token för att kontrollera den direkt.
Så verifierar du en JWT
- Klistra in din token under Token att verifiera.
- Välj Förväntad algoritm. Låter du den stå på ”Från token-headern” godtas det som headern anger, utom
none. Väljer du en specifik algoritm vägrar verktyget att godta token som signerats på annat sätt, precis som en riktig server ska göra. - Ange hemligheten eller nyckeln i Publik nyckel (PEM eller JWK): ett PEM-block av typen
PUBLIC KEY,RSA PUBLIC KEYellerCERTIFICATE, en JWK eller en JWK Set (den nyckel varskidmatchar headern används). - Ange vid behov en Klockmarginal (sekunder) för att tolerera små skillnader mellan klockor och klicka sedan på Verifiera token.
Resultatet visar om signaturen är giltig och kontrollerar sedan exp (utgångstid) och nbf (inte före) mot datorns aktuella tid. En token med korrekt signatur men en utgångstid som har passerat rapporteras som utgången, inte som giltig.
Nycklar och format
För signering godtar verktyget PKCS#8-block av typen PRIVATE KEY, PKCS#1-block RSA PRIVATE KEY och SEC1-block EC PRIVATE KEY (som konverteras till PKCS#8 internt), samt privata JWK:er. Lösenordsskyddade nycklar måste först exporteras utan lösenord. Generera testnyckel skapar en slumpmässig hemlighet i hashens storlek för HS-algoritmer, ett RSA-nyckelpar på 2048 bitar för RS och PS, rätt kurva för ES eller ett Ed25519-par. Du får nycklarna som PEM och JWK, och de fylls i på båda sidor så att du kan testa hela vägen direkt.
Signaturerna följer RFC 7515 och RFC 7518: RSA-PSS använder ett salt lika långt som hashen, och ECDSA-signaturer är den råa sammanslagningen r||s. Implementationen återger HS256-exemplet i RFC 7515, bilaga A.1.
Säkerhet
- Allt körs i din webbläsare med Web Crypto API. Varken token eller nycklar skickas någonstans, men använd ändå hellre testnycklar än produktionshemligheter.
alg: nonesigneras aldrig och godtas aldrig.- HMAC-hemligheter bör vara minst lika långa som hashen (32 byte för HS256). En kortare hemlighet ger en varning.
- En signatur bevisar integritet och ursprung, inte att anspråken är rimliga: servrar måste också kontrollera
iss,audoch behörigheterna (scopes).
Vanliga frågor
Vad är skillnaden mellan HS256 och RS256?
HS256 använder en och samma delade hemlighet både för att signera och för att verifiera, så varje verifierare skulle också kunna förfalska token. RS256 (liksom PS256, ES256 och EdDSA) signerar med en privat nyckel och verifierar med en publik nyckel som kan publiceras utan risk.
Varför visas ett fel trots att signaturen är giltig?
Därför att token ligger utanför sin giltighetstid: exp har passerat eller nbf ligger i framtiden. Signaturkontrollen och tidskontrollen redovisas var för sig.
Varför avvisas alg ”none”?
En osignerad token kan skapas av vem som helst. Att godta sådana var en klassisk sårbarhet i JWT-bibliotek, så verktyget avvisar dem både vid signering och vid verifiering.
Kan jag använda min egen RSA- eller EC-nyckel?
Ja. Klistra in den privata nyckeln som PEM eller JWK för att signera och den publika nyckeln för att verifiera. Verktyget kontrollerar att nyckeltypen och kurvan passar den valda algoritmen.
Varför är EdDSA avstängt?
Din webbläsare stöder ännu inte Ed25519 i Web Crypto. Nya versioner av Chrome, Edge, Firefox och Safari gör det.
Relaterade verktyg
- 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.
- 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.
- 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.