JWT generator i provjera
Izradi i provjeri JSON Web Tokene s HS256, RS256, PS256, ES256 ili EdDSA. Uredi tvrdnje, postavi exp i iat te provjeri potpise lokalno u pregledniku.
Ključevi i tokeni su tajne. Sve se potpisuje i provjerava lokalno pomoću Web Crypto API-ja tvog preglednika: ništa se ne šalje.
Izradi potpisani JWT
Ovaj preglednik ne podržava Ed25519 u Web Crypto API-ju, pa EdDSA nije dostupan.
Testni ključevi generiraju se u tvom pregledniku i upisuju ispod. Privatni ključ ili tajnu zadrži za sebe; dijeli samo javni ključ.
Provjeri JWT
Kako izraditi potpisani JWT
- Odaberi Algoritam: HS256/384/512 (zajednička tajna), RS256/384/512 ili PS256/384/512 (RSA), ES256/384/512 (ECDSA na P-256, P-384 ili P-521) ili EdDSA (Ed25519, ako ga tvoj preglednik podržava).
- Uredi Zaglavlje (JSON) i Sadržaj (JSON tvrdnje). Polje
alguvijek prati odabrani algoritam, atypje prema zadanim postavkamaJWT. - Gumbima za vremenske tvrdnje dodaj datume: iat = sada, nbf = sada, ili odaberi odgodu poput „za 1 sat“ i klikni Postavi exp. Vrijednosti su NumericDate: sekunde od 1. siječnja 1970. UTC.
- Unesi Tajnu (za HS algoritme, kao tekst ili Base64/Base64url u polju Format tajne) ili Privatni ključ (PEM ili JWK). Još nemaš ključ? Klikni Generiraj testni ključ.
- Klikni Potpiši token, zatim Kopiraj rezultat ili klikni Provjeri ovaj token za trenutačnu provjeru.
Kako provjeriti JWT
- Zalijepi token pod Token za provjeru.
- Odaberi Očekivani algoritam. Ako ostaviš „Iz zaglavlja tokena“, prihvaća se sve što zaglavlje kaže, osim
none; odabirom određenog algoritma alat odbija svaki token potpisan drukčije, kao što bi trebao i pravi poslužitelj. - Unesi tajnu ili Javni ključ (PEM ili JWK): PEM blok
PUBLIC KEY,RSA PUBLIC KEYiliCERTIFICATE, JWK ili JWK Set (koristi se ključ čijikidodgovara zaglavlju). - Po želji postavi Tolerancija sata (sekunde) da bi se tolerirale male razlike u satovima, zatim klikni Provjeri token.
Rezultat kaže je li potpis ispravan, a zatim provjerava exp (istek) i nbf (ne vrijedi prije) prema trenutačnom vremenu tvog računala. Token s ispravnim potpisom, ali istekom u prošlosti, prijavljuje se kao istekao, a ne kao ispravan.
Ključevi i formati
Za potpisivanje alat prihvaća PKCS#8 blokove PRIVATE KEY, PKCS#1 blokove RSA PRIVATE KEY i SEC1 blokove EC PRIVATE KEY (interno se pretvaraju u PKCS#8) te privatne JWK-ove. Ključevi zaštićeni lozinkom prvo se moraju izvesti bez lozinke. Generiraj testni ključ stvara nasumičnu tajnu veličine hash funkcije za HS algoritme, RSA par ključeva od 2048 bita za RS i PS, odgovarajuću krivulju za ES ili Ed25519 par. Ključeve dobiješ kao PEM i JWK, a upisuju se na obje strane pa povratni krug radi odmah.
Potpisi slijede RFC 7515 i RFC 7518: RSA-PSS koristi sol jednake duljine kao hash, a ECDSA potpisi su sirova konkatenacija r||s. Implementacija reproducira HS256 primjer iz RFC-a 7515, Dodatak A.1.
Sigurnosne napomene
- Sve se izvodi u tvom pregledniku pomoću Web Crypto API-ja. Ni tokeni ni ključevi ne šalju se nikamo, ali ipak radije koristi testne ključeve nego produkcijske tajne.
alg: nonenikada nije potpisan i nikada se ne prihvaća.- HMAC tajne trebaju biti barem duge koliko hash (32 bajta za HS256). Kraća tajna izaziva upozorenje.
- Potpis dokazuje cjelovitost i podrijetlo, a ne da su tvrdnje prikladne: poslužitelji moraju provjeriti i
iss,audi ovlasti.
Česta pitanja
Koja je razlika između HS256 i RS256?
HS256 koristi jednu zajedničku tajnu i za potpisivanje i za provjeru, pa bi svaki provjeravatelj mogao i krivotvoriti tokene. RS256 (te PS256, ES256, EdDSA) potpisuje privatnim ključem, a provjerava javnim ključem koji se može sigurno objaviti.
Zašto se i uz ispravan potpis prikazuje greška?
Zato što je token izvan roka valjanosti: exp je u prošlosti ili je nbf u budućnosti. Provjera potpisa i provjera vremena prijavljuju se zasebno.
Zašto se alg „none“ odbija?
Nepotpisani token može izraditi svatko. Prihvaćanje takvih tokena bila je klasična ranjivost JWT biblioteka, pa ga ovaj alat odbija i pri potpisivanju i pri provjeri.
Mogu li koristiti vlastiti RSA ili EC ključ?
Da. Za potpisivanje zalijepi privatni ključ kao PEM ili JWK, a za provjeru javni ključ. Alat provjerava podudaraju li se vrsta ključa i krivulja s odabranim algoritmom.
Zašto je EdDSA onemogućen?
Tvoj preglednik još ne podržava Ed25519 u Web Crypto API-ju. Novije verzije preglednika Chrome, Edge, Firefox i Safari podržavaju.
Slični alati
- JWT dekoder Dekodiraj zaglavlje i sadržaj JWT-a, pročitaj exp, iat i nbf kao datume te provjeri HS256, RS256, PS256, ES256 ili EdDSA potpis u pregledniku.
- HMAC generator Izračunaj HMAC-SHA1, SHA-256, SHA-384 ili SHA-512 s tekstnim, hex ili Base64 ključem, dobij hex i Base64 izlaz i provjeri potpis webhooka u pregledniku.
- Pretvarač Unix vremenske oznake Pretvori Unix vremenske oznake u sekundama ili milisekundama u čitljive datume u lokalnom vremenu, UTC-u i ISO 8601, a svaki datum vrati u epoch vrijeme.
- JSON formater i validator Besplatni JSON formater i validator koji uljepšava, minificira i provjerava JSON u pregledniku, a sintaksne greške prijavljuje s retkom i stupcem.