JWT-generator og verifisering
Lag og verifiser JSON Web Tokens med HS256, RS256, PS256, ES256 eller EdDSA. Rediger felter, sett exp og iat, og sjekk signaturer lokalt i nettleseren din.
Nøkler og tokens er hemmeligheter. Alt signeres og verifiseres lokalt med Web Crypto API i nettleseren din: ingenting lastes opp.
Lag en signert JWT
Denne nettleseren støtter ikke Ed25519 i Web Crypto, så EdDSA er ikke tilgjengelig.
Testnøkler genereres i nettleseren din og fylles inn nedenfor. Hold den private nøkkelen eller hemmeligheten for deg selv, og del bare den offentlige nøkkelen.
Verifiser en JWT
Slik lager du en signert JWT
- Velg Algoritme: HS256/384/512 (delt hemmelighet), RS256/384/512 eller PS256/384/512 (RSA), ES256/384/512 (ECDSA på P-256, P-384 eller P-521), eller EdDSA (Ed25519, når nettleseren din støtter det).
- Rediger Header (JSON) og Payload (JSON-felter). Feltet
algfølger alltid den valgte algoritmen, ogtyper som standardJWT. - Bruk knappene for tidsfelter til å legge inn datoer: iat = nå, nbf = nå, eller velg en frist som «om 1 time» under Utløper etter og klikk Sett exp. Verdiene er NumericDate: sekunder siden 1. januar 1970 UTC.
- Skriv inn Hemmelighet (HS-algoritmer, som tekst eller Base64/Base64url under Format på hemmeligheten) eller Privat nøkkel (PEM eller JWK). Har du ingen nøkkel ennå? Klikk Generer testnøkkel.
- Klikk Signer token, og Kopier deretter resultatet, eller klikk Verifiser denne tokenen for å sjekke den med en gang.
Slik verifiserer du en JWT
- Lim inn tokenen under Token som skal verifiseres.
- Velg Forventet algoritme. Står den på «Fra token-headeren», godtas alt headeren sier, bortsett fra
none. Velger du en bestemt algoritme, avviser verktøyet alle tokens som er signert på en annen måte, slik en ekte server bør gjøre. - Skriv inn hemmeligheten eller Offentlig nøkkel (PEM eller JWK): en PEM-blokk av typen
PUBLIC KEY,RSA PUBLIC KEYellerCERTIFICATE, en JWK eller et JWK Set (nøkkelen hviskidsamsvarer med headeren, brukes). - Du kan sette en Klokketoleranse (sekunder) for å tåle små klokkeavvik. Klikk deretter Verifiser token.
Resultatet sier om signaturen er gyldig, og sjekker så exp (utløp) og nbf (ikke gyldig før) mot klokken på datamaskinen din. En token med riktig signatur, men utløpstid i fortiden, rapporteres som utløpt, ikke som gyldig.
Nøkler og formater
Til signering godtar verktøyet PKCS#8-blokker (PRIVATE KEY), PKCS#1-blokker (RSA PRIVATE KEY), SEC1-blokker (EC PRIVATE KEY, som konverteres internt til PKCS#8) og private JWK-er. Passordbeskyttede nøkler må først eksporteres uten passord. Generer testnøkkel lager en tilfeldig hemmelighet på hash-størrelse for HS-algoritmer, et RSA-nøkkelpar på 2048 bit for RS og PS, passende kurve for ES, eller et Ed25519-par. Du får nøklene som PEM og JWK, og de fylles inn på begge sider, slik at en rundtur fungerer med en gang.
Signaturene følger RFC 7515 og RFC 7518: RSA-PSS bruker et salt like langt som hashen, og ECDSA-signaturer er den rå sammenkjedingen r||s. Implementasjonen gjengir HS256-eksempelet i RFC 7515, vedlegg A.1.
Sikkerhetsmerknader
- Alt kjører i nettleseren din med Web Crypto API. Verken tokens eller nøkler sendes noe sted, men du bør likevel foretrekke testnøkler framfor hemmeligheter fra produksjon.
alg: nonesigneres aldri og godtas aldri.- HMAC-hemmeligheter bør være minst like lange som hashen (32 byte for HS256). En kortere hemmelighet utløser en advarsel.
- En signatur beviser integritet og opphav, ikke at innholdet i feltene er riktig: servere må også kontrollere
iss,audog tilganger (scopes).
Ofte stilte spørsmål
Hva er forskjellen på HS256 og RS256?
HS256 bruker én delt hemmelighet både til å signere og til å verifisere, så alle som kan verifisere, kan også forfalske tokens. RS256 (og PS256, ES256, EdDSA) signerer med en privat nøkkel og verifiserer med en offentlig nøkkel som trygt kan publiseres.
Hvorfor viser en gyldig signatur likevel en feil?
Fordi tokenen er utenfor gyldighetsperioden: exp ligger i fortiden, eller nbf ligger i fremtiden. Signaturkontrollen og tidskontrollen rapporteres hver for seg.
Hvorfor avvises alg «none»?
En usignert token kan lages av hvem som helst. Å godta den var en klassisk sårbarhet i JWT-biblioteker, så dette verktøyet avviser den både ved signering og ved verifisering.
Kan jeg bruke min egen RSA- eller EC-nøkkel?
Ja. Lim inn den private nøkkelen som PEM eller JWK for å signere, og den offentlige nøkkelen for å verifisere. Verktøyet kontrollerer at nøkkeltype og kurve passer til den valgte algoritmen.
Hvorfor er EdDSA deaktivert?
Nettleseren din støtter ikke Ed25519 i Web Crypto ennå. Nyere versjoner av Chrome, Edge, Firefox og Safari gjør det.
Relaterte verktøy
- JWT-dekoder Dekod header og payload i en JWT, les exp, iat og nbf som datoer, og verifiser HS256-, RS256-, PS256-, ES256- og EdDSA-signaturer lokalt i nettleseren din.
- HMAC-generator Beregn HMAC-SHA1, SHA-256, SHA-384 eller SHA-512 med tekst-, hex- eller Base64-nøkkel, få hex- og Base64-utdata og kontroller en webhook-signatur i nettleseren.
- Unix-tidsstempel til dato Gjør Unix-tidsstempler i sekunder eller millisekunder om til lesbare datoer i lokal tid, UTC og ISO 8601, og gjør hvilken som helst dato om til epoch-tid igjen.
- JSON-formaterer og -validator Gratis JSON-formaterer og -validator som gjør JSON ryddig, minifiserer og kontrollerer den i nettleseren din, med syntaksfeil oppgitt med linje og kolonne.