Instrukcja
Jak zdekodować JWT bez wycieku
Token JWT niesie prawdziwe dane: użytkownika, dla którego został wydany, uprawnienia, które przyznaje, oraz datę wygaśnięcia. Wklejenie go do przypadkowego dekodera online oznacza powierzenie tych danych, a często wciąż ważnej sesji, serwerowi, którego nie kontrolujesz. Dekoder poniżej działa w całości w Twojej przeglądarce, więc możesz odczytać zawartość tokenu, sprawdzić, czy wygasł, i potwierdzić podpis HMAC, gdy znasz sekret, a wszystko to bez ani jednego żądania sieciowego opuszczającego Twoją kartę.
Krok po kroku
- Otwórz dekoder JWT i wklej token do pola wejściowego. JWT to trzy bloki w Base64Url połączone kropkami: nagłówek, ładunek i podpis. Możesz wkleić go z przedrostkiem Bearer lub bez; narzędzie odczytuje strukturę w obu przypadkach i natychmiast informuje, jeśli format jest błędny.
- Odczytaj zdekodowany nagłówek i ładunek. Nagłówek pokazuje algorytm podpisu (na przykład HS256 lub RS256) oraz identyfikator klucza, jeśli jest obecny. Ładunek wymienia claimy: dla kogo wydano token (sub), kto go wydał (iss) i znaczniki czasu. Narzędzie zamienia liczbowe pola iat, nbf i exp na czytelne daty oraz wskazuje, czy token jest jeszcze ważny, czy już wygasł.

- Jeśli token używa HS256 i posiadasz wspólny sekret, wklej ten sekret w pole weryfikacji i kliknij Zweryfikuj. Narzędzie ponownie oblicza HMAC z nagłówka i ładunku i porównuje go z podpisem, dzięki czemu dowiesz się, czy token jest autentyczny, czy został zmieniony. Dla tokenów RS256 lub ES256 podpis opiera się na kluczu prywatnym, którego nie masz; dlatego narzędzie sprawdza claimy, ale nie twierdzi, że weryfikuje podpis.

Dlaczego nigdy nie wklejaj tokenu na przypadkowej stronie
JWT nie jest szyfrowany. Nagłówek i ładunek są tylko zakodowane w Base64Url, co oznacza, że każdy, kto otrzyma token, może odczytać każdy zawarty w nim claim: e-mail, identyfikator użytkownika, role, wewnętrzne flagi. Jeśli token jest tokenem dostępu, który jeszcze nie wygasł, jego posiadacz może go odtworzyć i działać w Twoim imieniu aż do wygaśnięcia. Wklejając aktywny token do hostowanego dekodera, wysyłasz to wszystko do logów tego serwera. Zdekodowanie tokenu na własnym urządzeniu, bez żadnego przesyłania, to jedyny sposób, by go sprawdzić bez poszerzania grona osób, które mogą go zobaczyć. Brak ruchu możesz potwierdzić, otwierając panel sieci podczas dekodowania.
Co podpis może, a czego nie może Ci powiedzieć
Podpis to coś, co uniemożliwia komuś zmianę claimów i ujście tego na sucho. W tokenie HS256 ten sam sekret podpisuje i weryfikuje, więc jeśli znasz sekret, możesz w pełni potwierdzić autentyczność tokenu właśnie tutaj. W tokenach RS256 i ES256 klucz prywatny podpisuje token, a tylko odpowiadający mu klucz publiczny go weryfikuje; klucz prywatny nigdy nie opuszcza wystawcy, więc narzędzie po stronie klienta może odczytać claimy, ale nie może uczciwie udowodnić podpisu bez tego klucza publicznego. Traktuj zdekodowany ładunek jako twierdzenie wystawcy, a nie dowód, dopóki podpis nie zostanie sprawdzony przez posiadacza klucza weryfikującego. Aby osobno haszować lub porównywać sekrety, generator hashy na tej stronie również działa lokalnie.
Struktura JWT i co ujawnia każda część
JWT to trzy segmenty zakodowane Base64url, rozdzielone kropkami: nagłówek, ładunek i podpis. Nagłówek deklaruje typ tokenu ("JWT") oraz algorytm: HS256 (HMAC-SHA-256, wspólny sekret) lub RS256 (RSA-SHA-256, para kluczy publiczny/prywatny) to najczęstsze. Ładunek zawiera twierdzenia, takie jak `sub` (podmiot, zazwyczaj identyfikator użytkownika), `iat` (znacznik czasu wydania Unix), `exp` (znacznik czasu wygaśnięcia Unix), `aud` (odbiorca docelowy) oraz niestandardowe twierdzenia aplikacji, jak role lub zakresy. Base64url to nie szyfrowanie: to bezpieczny dla URL wariant Base64, który zastępuje `+` przez `-` i `/` przez `_`, pomijając wypełnienie. Każdy, kto posiada surowy ciąg tokenu, może zdekodować nagłówek i ładunek bez klucza podpisującego. Tylko segment podpisu wymaga klucza do weryfikacji. Dlatego wklejanie aktywnego tokenu produkcyjnego do zewnętrznego dekodera online jest ryzykiem bezpieczeństwa: jeśli `exp` tokenu jest jeszcze w przyszłości, a serwis loguje dane wejściowe, sesja, którą reprezentuje, może zostać naruszona.
Narzędzia użyte w tym poradniku
- Dekoder JWTDekoduj JWT (nagłówek, ładunek, wygaśnięcie) bez wysyłania go gdziekolwiek. Bez weryfikacji podpisu.
- Generator skrótówGeneruj skróty MD5, SHA-1, SHA-256, SHA-512 z tekstu lub plików. Bez przesyłania.
- Formatter JSONFormatuj, waliduj i minifikuj JSON bezpośrednio w przeglądarce. Bez przesyłania.
Najczęściej zadawane pytania
Czy mój token jest wysyłany na jakiś serwer, gdy go dekoduję?
Nie. Dekoder dzieli token, dekoduje nagłówek i ładunek z Base64Url i wyświetla je w pamięci. Opcjonalne sprawdzenie HMAC korzysta z wbudowanego w przeglądarkę API Web Crypto. Nic nie przechodzi przez sieć, co ma znaczenie, bo JWT często zawiera dane osobowe i wciąż aktywną sesję. Otwórz panel sieci przeglądarki podczas dekodowania, a nie zobaczysz żadnego wychodzącego żądania.
Czy to narzędzie może zweryfikować podpis RS256 lub ES256?
Nie w pełni i nie będzie tego udawać. HS256 używa jednego wspólnego sekretu do podpisywania i weryfikacji, więc wklejenie tego sekretu pozwala narzędziu potwierdzić podpis w przeglądarce. RS256 i ES256 używają klucza prywatnego do podpisywania i odrębnego klucza publicznego do weryfikacji; narzędzie odczytuje i sprawdza claimy oraz wygaśnięcie, ale nie posuwa się do potwierdzania podpisu, którego nie może sprawdzić. W przypadku tych tokenów weryfikuj po stronie usługi, która posiada klucz publiczny.