Generator i weryfikator JWT
Twórz i weryfikuj tokeny JWT z HS256, RS256, PS256, ES256 lub EdDSA. Edytuj claimy, ustaw exp i iat oraz sprawdzaj podpisy lokalnie w przeglądarce.
Klucze i tokeny to sekrety. Wszystko jest podpisywane i weryfikowane lokalnie przez Web Crypto twojej przeglądarki: nic nie jest wysyłane.
Utwórz podpisany JWT
Ta przeglądarka nie obsługuje Ed25519 w Web Crypto, więc EdDSA jest niedostępne.
Klucze testowe są generowane w twojej przeglądarce i wpisywane poniżej. Klucz prywatny lub sekret zachowaj dla siebie; udostępniaj tylko klucz publiczny.
Zweryfikuj JWT
Jak utworzyć podpisany JWT
- Wybierz Algorytm: HS256/384/512 (wspólny sekret), RS256/384/512 lub PS256/384/512 (RSA), ES256/384/512 (ECDSA na krzywych P-256, P-384 lub P-521) albo EdDSA (Ed25519, jeśli obsługuje go twoja przeglądarka).
- Edytuj Nagłówek (JSON) i Ładunek (claimy JSON). Pole
algzawsze odpowiada wybranemu algorytmowi, atypdomyślnie ma wartośćJWT. - Przyciskami dat dodasz znaczniki czasu: iat = teraz, nbf = teraz albo wybierz okres, np. „za 1 godzinę”, i kliknij Ustaw exp. Wartości to NumericDate, czyli sekundy od 1 stycznia 1970 r. UTC.
- Wpisz Sekret (dla algorytmów HS, jako tekst lub Base64/Base64url – wybierasz to w polu Format sekretu) albo Klucz prywatny (PEM lub JWK). Nie masz jeszcze klucza? Kliknij Generuj klucz testowy.
- Kliknij Podpisz token, a następnie Kopiuj wynik albo Zweryfikuj ten token, aby od razu go sprawdzić.
Jak zweryfikować JWT
- Wklej token w pole Token do weryfikacji.
- Wybierz Oczekiwany algorytm. Opcja „Z nagłówka tokena” przyjmuje to, co podaje nagłówek – z wyjątkiem
none. Wybór konkretnego algorytmu sprawia, że narzędzie odrzuci każdy token podpisany inaczej, tak jak powinien zrobić prawdziwy serwer. - Podaj sekret albo Klucz publiczny (PEM lub JWK): blok PEM
PUBLIC KEY,RSA PUBLIC KEYlubCERTIFICATE, pojedynczy JWK lub JWK Set (używany jest klucz, któregokidpasuje do nagłówka). - Opcjonalnie ustaw Tolerancja zegara (sekundy), aby wybaczyć drobne różnice czasu, i kliknij Zweryfikuj token.
Wynik mówi, czy podpis jest poprawny, a następnie porównuje exp (wygaśnięcie) i nbf (ważny od) z bieżącym czasem twojego komputera. Token z poprawnym podpisem, ale datą wygaśnięcia w przeszłości, zostanie oznaczony jako wygasły, a nie jako ważny.
Klucze i formaty
Do podpisywania narzędzie przyjmuje bloki PKCS#8 PRIVATE KEY, PKCS#1 RSA PRIVATE KEY i SEC1 EC PRIVATE KEY (wewnętrznie konwertowane do PKCS#8) oraz prywatne JWK. Klucze chronione hasłem trzeba najpierw wyeksportować bez hasła. Generuj klucz testowy tworzy losowy sekret o długości skrótu dla algorytmów HS, parę kluczy RSA 2048 bitów dla RS i PS, klucz na odpowiedniej krzywej dla ES albo parę Ed25519. Dostajesz klucze jako PEM i JWK, a narzędzie wpisuje je po obu stronach, więc pełny cykl podpis–weryfikacja działa od razu.
Podpisy są zgodne z RFC 7515 i RFC 7518: RSA-PSS używa soli o długości skrótu, a podpisy ECDSA to surowe połączenie r||s. Implementacja odtwarza przykład HS256 z RFC 7515, dodatek A.1.
Uwagi dotyczące bezpieczeństwa
- Wszystko działa w twojej przeglądarce przez Web Crypto API. Ani tokeny, ani klucze nie są nigdzie wysyłane, ale i tak lepiej używać kluczy testowych niż sekretów produkcyjnych.
alg: nonenigdy nie jest podpisywany ani akceptowany.- Sekrety HMAC powinny być co najmniej tak długie jak skrót (32 bajty dla HS256). Krótszy sekret wywołuje ostrzeżenie.
- Podpis potwierdza integralność i pochodzenie, a nie to, że claimy są właściwe: serwer musi też sprawdzić
iss,audi uprawnienia (scopes).
Najczęściej zadawane pytania
Czym różni się HS256 od RS256?
HS256 używa jednego wspólnego sekretu zarówno do podpisu, jak i do weryfikacji, więc każdy weryfikator mógłby też podrabiać tokeny. RS256 (a także PS256, ES256 i EdDSA) podpisuje kluczem prywatnym, a weryfikuje kluczem publicznym, który można bezpiecznie opublikować.
Dlaczego poprawny podpis nadal pokazuje błąd?
Bo token jest poza okresem ważności: exp jest w przeszłości albo nbf w przyszłości. Wynik sprawdzenia podpisu i sprawdzenia dat jest raportowany osobno.
Dlaczego alg „none” jest odrzucany?
Niepodpisany token może utworzyć każdy. Akceptowanie go było klasyczną luką bibliotek JWT, dlatego to narzędzie odrzuca go zarówno przy podpisywaniu, jak i przy weryfikacji.
Czy mogę użyć własnego klucza RSA lub EC?
Tak. Wklej klucz prywatny jako PEM lub JWK, aby podpisać, i klucz publiczny, aby zweryfikować. Narzędzie sprawdza, czy typ klucza i krzywa pasują do wybranego algorytmu.
Dlaczego EdDSA jest wyłączone?
Twoja przeglądarka nie obsługuje jeszcze Ed25519 w Web Crypto. Obsługują go aktualne wersje Chrome, Edge, Firefoksa i Safari.
Podobne narzędzia
- Dekoder JWT Odkoduj nagłówek i ładunek JWT, odczytaj exp, iat i nbf jako daty oraz zweryfikuj podpis HS256, RS256, ES256 lub EdDSA lokalnie w przeglądarce.
- Generator HMAC Oblicz HMAC-SHA1, SHA-256, SHA-384 lub SHA-512 z kluczem tekstowym, hex lub Base64, uzyskaj wynik hex i Base64 i sprawdź podpis webhooka.
- Konwerter timestampów Unix Zamieniaj timestampy Unix w sekundach lub milisekundach na czytelne daty w czasie lokalnym, UTC i ISO 8601 oraz dowolną datę z powrotem na czas epoch.
- Formatowanie i walidacja JSON Darmowe narzędzie do formatowania i walidacji JSON: upiększa, minifikuje i sprawdza JSON w przeglądarce, wskazując wiersz i kolumnę błędu.