# JWT-generator

Skapa en signerad JSON Web Token utifrån dina egna anspråk i JSON. Välj HS256, HS384 eller HS512 med en delad hemlighet, RS256 till PS512 med en privat RSA-nyckel, ES256 till ES512 med motsvarande EC-nyckel eller EdDSA med en Ed25519-nyckel, angiven som PEM eller JWK. Generatorn kan lägga till iat, exp och en kid-header, signerar med jose-biblioteket och visar den kompakta tokenen bredvid dess avkodade header och payload.

## Vanliga frågor

### Vilka signeringsalgoritmer kan jag använda?

Generatorn stöder HS256, HS384 och HS512 med en delad hemlighet, RS256, RS384, RS512, PS256, PS384 och PS512 med en privat RSA-nyckel, ES256, ES384 och ES512 med en privat EC-nyckel på P-256, P-384 eller P-521 samt EdDSA med en privat Ed25519-nyckel. Den valda algoritmen skrivs till alg-headern och typ sätts alltid till JWT.

### Vad ska jag ange som payload?

Ange ett JSON-objekt med dina anspråk, till exempel sub, name, iss, aud eller valfritt anpassat fält. Arrayer, strängar och andra värden som inte är objekt avvisas, eftersom en JWT-payload måste vara ett JSON-objekt. Ordningen på anspråken och deras värden behålls exakt som du skrev dem.

### Hur läses HMAC-hemligheten?

För HS256, HS384 och HS512 används hemligheten som UTF-8-text efter att inledande och avslutande blanksteg har tagits bort. Om hemligheten är binär kan du klistra in den som en JWK, till exempel {"kty": "oct", "k": "..."}, med byten kodade i base64url. I stället används då de avkodade byten. PEM-nycklar avvisas för HMAC-algoritmer, eftersom det är ett klassiskt misstag att använda en publik nyckel som HMAC-hemlighet.

### Hur lång bör en HS256-hemlighet vara?

RFC 7518 kräver en nyckel som är minst lika lång som hashresultatet: 32 byte för HS256, 48 för HS384 och 64 för HS512. Verktyget signerar med kortare hemligheter så att du kan återskapa testtokenar, men hemligheter för produktion bör vara långa och slumpmässiga, till exempel från Password Generator.

### Vilka privata nyckelformat godtas för RSA, EC och EdDSA?

Klistra in en okrypterad privat PEM-nyckel i formatet PKCS #8 (BEGIN PRIVATE KEY), PKCS #1 (BEGIN RSA PRIVATE KEY) eller SEC1 (BEGIN EC PRIVATE KEY), eller en privat JWK som innehåller fältet d. Krypterade PEM-filer och privata OpenSSH-nycklar kan inte läsas. Nyckeln måste passa algoritmen, så ES384 kräver en P-384-nyckel och RSA-nycklar måste vara minst 2048 bitar.

### Hur sätts iat och exp?

När alternativet för utfärdandetid är aktiverat sätts iat till den aktuella tiden, såvida payloaden redan innehåller ett iat-anspråk. När utgångstiden är större än 0 sekunder sätts exp till den aktuella tiden plus det antalet sekunder, och eventuellt exp i payloaden ersätts. Om utgångstiden är 0 läggs inget exp till, och ett exp från payloaden behålls.

### Vad används fältet kid till?

Ett icke-tomt nyckel-ID skrivs till kid-headern så att verifierare kan välja rätt nyckel från en JWKS. Om du klistrar in en JWKS som signeringsnyckel väljer kid även vilken nyckel i uppsättningen som signerar tokenen. JWK Converter och nyckelgeneratorerna visar fingeravtrycket enligt RFC 7638, vilket passar bra som kid.

### Vad innehåller resultatet?

Du får den kompakta tokenen, algoritmen, nyckel-ID:t, utfärdande- och utgångstiderna i UTC samt exakt den header och payload i JSON som signerades. Kopiera tokenen från det första blocket. Avkoda den senare med JWT Decoder eller kontrollera den med JWT Verifier.

### Lagrar ni mina hemligheter eller nycklar?

Nej. Hemligheten eller den privata nyckeln skickas bara med begäran som signerar tokenen, används en gång i minnet och loggas eller sparas aldrig. Använd ändå helst testnycklar vid experiment och klistra aldrig in en signeringsnyckel för produktion i något webbverktyg om du inte kontrollerar servern.

### Finns det storleksbegränsningar?

Payloaden får vara högst 65,536 tecken lång, nyckeln högst 65,536 tecken och kid högst 256 tecken. Utgångstiden kan vara mellan 0 och 315,360,000 sekunder, vilket motsvarar tio år. Längre värden avvisas med ett meddelande som anger vilket fält det gäller.

Vill du annonsera här?

[Mejla oss](mailto:hi@dennn.is?subject=Annonsera%20p%C3%A5%20OneClick%20Pro)

[Annons Pluginpaketet för agenter för WordPress.](https://sleekwp.com/?ref=oneclickpro)
