JWT-generaattori ja -tarkistin
Luo ja tarkista JSON Web Tokeneita HS256-, RS256-, PS256-, ES256- tai EdDSA-algoritmilla. Muokkaa kenttiä ja aseta exp selaimessasi.
Avaimet ja tokenit ovat salaisia. Kaikki allekirjoitetaan ja tarkistetaan paikallisesti selaimesi Web Crypto API:lla: mitään ei lähetetä palvelimelle.
Luo allekirjoitettu JWT
Tämä selain ei tue Ed25519:ää Web Cryptossa, joten EdDSA ei ole käytettävissä.
Testiavaimet luodaan selaimessasi ja täytetään alle. Pidä yksityinen avain tai salaisuus omana tietonasi; jaa vain julkinen avain.
Tarkista JWT
Näin luot allekirjoitetun JWT:n
- Valitse Algoritmi: HS256/384/512 (jaettu salaisuus), RS256/384/512 tai PS256/384/512 (RSA), ES256/384/512 (ECDSA käyrillä P-256, P-384 tai P-521) tai EdDSA (Ed25519, kun selaimesi tukee sitä).
- Muokkaa kenttiä Otsake (JSON) ja Sisältö (JSON-kentät). Kenttä
algseuraa aina valittua algoritmia, jatypon oletuksenaJWT. - Lisää päivämäärät aikakenttien painikkeilla: iat = nyt, nbf = nyt, tai valitse viive, kuten “1 tunnin päästä”, ja napsauta Aseta exp. Arvot ovat NumericDate-aikoja: sekunteja 1.1.1970 UTC:stä.
- Anna Salaisuus (HS-algoritmit, tekstinä tai Base64/Base64urlina kohdassa Salaisuuden muoto) tai Yksityinen avain (PEM tai JWK). Eikö avainta ole vielä? Napsauta Luo testiavain.
- Napsauta Allekirjoita token ja sitten Kopioi tulos tai napsauta Tarkista tämä token tarkistaaksesi sen heti.
Näin tarkistat JWT:n
- Liitä token kenttään Tarkistettava token.
- Valitse Odotettu algoritmi. Jos jätät valinnaksi “Tokenin otsakkeesta”, työkalu hyväksyy sen, mitä otsake väittää, paitsi
none-algoritmin. Kun valitset tietyn algoritmin, työkalu hylkää kaikki muulla tavalla allekirjoitetut tokenit, aivan kuten oikean palvelimen pitääkin tehdä. - Anna salaisuus tai Julkinen avain (PEM tai JWK):
PUBLIC KEY-,RSA PUBLIC KEY- taiCERTIFICATE-PEM-lohko, JWK tai JWK Set (käytetään avainta, jonkakidvastaa otsakkeen arvoa). - Voit halutessasi asettaa Kellon toleranssi (sekunteja) pienten kelloerojen sietämiseksi. Napsauta sitten Tarkista token.
Tulos kertoo, onko allekirjoitus kelvollinen, ja vertaa sen jälkeen exp-arvoa (vanheneminen) ja nbf-arvoa (ei voimassa ennen) tietokoneesi nykyiseen aikaan. Token, jonka allekirjoitus on oikea mutta vanhenemisaika on mennyt, ilmoitetaan vanhentuneeksi, ei kelvolliseksi.
Avaimet ja muodot
Allekirjoittamiseen työkalu hyväksyy PKCS#8 PRIVATE KEY -lohkot, PKCS#1 RSA PRIVATE KEY -lohkot ja SEC1 EC PRIVATE KEY -lohkot (muunnetaan sisäisesti PKCS#8:ksi) sekä yksityiset JWK:t. Salasanalla suojatut avaimet on ensin vietävä ulos ilman salasanaa. Luo testiavain tekee HS-algoritmeille satunnaisen salaisuuden, jonka pituus on sama kuin tiivisteen, RS- ja PS-algoritmeille 2048-bittisen RSA-avainparin, ES-algoritmeille sopivan käyrän avainparin ja EdDSA:lle Ed25519-avainparin. Saat avaimet PEM- ja JWK-muodossa, ja ne täytetään molemmille puolille, joten kokonaisuutta voi kokeilla heti.
Allekirjoitukset noudattavat standardeja RFC 7515 ja RFC 7518: RSA-PSS käyttää suolaa, joka on yhtä pitkä kuin tiiviste, ja ECDSA-allekirjoitukset ovat raakamuotoinen r||s-ketju. Toteutus tuottaa RFC 7515:n liitteen A.1 HS256-esimerkin.
Tietoturvahuomioita
- Kaikki toimii selaimessasi Web Crypto API:lla. Tokeneita tai avaimia ei lähetetä minnekään, mutta käytä silti mieluummin testiavaimia kuin tuotantosalaisuuksia.
alg: noneei ole koskaan allekirjoitettu eikä sitä koskaan hyväksytä.- HMAC-salaisuuden pitäisi olla vähintään tiivisteen mittainen (32 tavua HS256:lle). Lyhyempi salaisuus aiheuttaa varoituksen.
- Allekirjoitus todistaa eheyden ja alkuperän, ei sitä, että kentät ovat asianmukaisia: palvelimen on tarkistettava myös
iss,audja oikeudet (scope).
Usein kysytyt kysymykset
Mitä eroa on HS256:lla ja RS256:lla?
HS256 käyttää yhtä jaettua salaisuutta sekä allekirjoitukseen että tarkistukseen, joten jokainen tarkistaja voisi myös väärentää tokeneita. RS256 (sekä PS256, ES256 ja EdDSA) allekirjoittaa yksityisellä avaimella ja tarkistaa julkisella avaimella, jonka voi turvallisesti julkaista.
Miksi kelvollinen allekirjoitus näyttää silti virheen?
Koska token on voimassaoloaikansa ulkopuolella: exp on menneisyydessä tai nbf tulevaisuudessa. Allekirjoituksen tarkistus ja aikatarkistus raportoidaan erikseen.
Miksi alg "none" hylätään?
Allekirjoittamattoman tokenin voi luoda kuka tahansa. Sen hyväksyminen oli JWT-kirjastojen klassinen haavoittuvuus, joten tämä työkalu hylkää sen sekä allekirjoitettaessa että tarkistettaessa.
Voinko käyttää omaa RSA- tai EC-avaintani?
Kyllä. Liitä yksityinen avain PEM- tai JWK-muodossa allekirjoittaaksesi ja julkinen avain tarkistaaksesi. Työkalu varmistaa, että avaintyyppi ja käyrä vastaavat valittua algoritmia.
Miksi EdDSA ei ole käytettävissä?
Selaimesi ei vielä tue Ed25519:ää Web Cryptossa. Chromen, Edgen, Firefoxin ja Safarin uudet versiot tukevat sitä.
Aiheeseen liittyvät työkalut
- JWT-dekooderi Pura JWT:n otsake ja sisältö, lue exp, iat ja nbf päivämäärinä ja tarkista HS256-, RS256-, PS256-, ES256- tai EdDSA-allekirjoitus selaimessasi.
- HMAC-generaattori Laske HMAC-SHA1, SHA-256, SHA-384 tai SHA-512 teksti-, heksa- tai Base64-avaimella ja tarkista webhookin allekirjoitus selaimessa.
- Unix-aikaleimamuunnin Muunna Unix-aikaleimat sekunneista tai millisekunneista luettaviksi päivämääriksi paikallisessa ajassa, UTC:ssä ja ISO 8601 -muodossa. Muunna myös takaisin.
- JSON-muotoilija ja -validaattori Ilmainen JSON-muotoilija ja -validaattori, joka siistii, pienentää ja tarkistaa JSONin selaimessa ja ilmoittaa syntaksivirheet rivin ja sarakkeen kanssa.