Przejdź do treści
100% Prywatności — Pliki zostają na Twoim urządzeniu
>_
Polski

Dekoder JWT

Dekoduj, weryfikuj i podpisuj ponownie tokeny JSON Web Token natychmiast — w całości w Twojej przeglądarce.

Utwórz nowy token (koder)

Zbuduj i podpisz JWT od zera w przeglądarce. Klucze nigdy nie opuszczają tej strony.

Jak działa dekodowanie JWT po stronie przeglądarki — i dlaczego ma to znaczenie?

JSON Web Token wygląda jak nieczytelny ciąg znaków, ale w rzeczywistości to tylko trzy części zakodowane w Base64URL i połączone kropkami: nagłówek, payload i podpis. Dekodowanie nagłówka i payloadu nie jest żadnym szyfrowaniem — każdy, kto ma token, może odczytać zawarte w nim roszczenia, dlatego właśnie wrażliwych danych nigdy nie należy umieszczać w payloadzie JWT. Problem w tym, że tokeny, które trzeba sprawdzić, rzadko są jednorazowymi danymi testowymi. Często jest to aktywny token sesji z działającej aplikacji produkcyjnej, token dostępu do API albo ciasteczko logowania wyciągnięte prosto z narzędzi deweloperskich przeglądarki podczas debugowania — prawdziwe poświadczenie, które w niepowołanych rękach daje realny dostęp. Wklejenie go na przypadkową stronę oddaje Twoją sesję serwerowi, o którym nic nie wiesz.

To narzędzie nigdy tego nie robi. Nagłówek i payload są dekodowane zwykłym JavaScriptem działającym w Twojej przeglądarce w momencie wklejenia tokenu — dzielone po kropkach, dekodowane z Base64URL, parsowane jako JSON — i nic z tego nie jest nigdzie wysyłane. Weryfikacja podpisu działa na tej samej zasadzie, wykorzystując wbudowane w każdą nowoczesną przeglądarkę Web Crypto API (`SubtleCrypto`): algorytmy HMAC (HS256, HS384, HS512) są weryfikowane względem wpisanego przez Ciebie sekretu, a algorytmy RSA (RS256, RS384, RS512) — względem wklejonego klucza publicznego w formacie PEM. Zarówno kryptograficzny sekret, jak i sama weryfikacja pozostają lokalnie w karcie przeglądarki; po odświeżeniu strony wszystko — token, sekret, klucz — znika.

Wklej token, aby zobaczyć jego nagłówek i payload w czytelnej, sformatowanej postaci, wraz z odczytem standardowych roszczeń `exp`, `iat` i `nbf` przeliczonych na czytelną datę, z wyraźną plakietką "Wygasł", jeśli `exp` tokenu już minął — przydatne, gdy trzeba potwierdzić, że zgłoszenie "zostałem wylogowany" to po prostu wygasły token. Jeśli algorytmem jest HS256/384/512 lub RS256/384/512, wpisz odpowiedni sekret lub klucz publiczny, aby sprawdzić, czy podpis jest autentyczny, czy został sfałszowany. Algorytmy spoza tego zestawu (jak ES256 czy niepodpisany `none`) nadal dekodują się poprawnie, ale weryfikacja nie jest wtedy oferowana — zamiast udawać wynik, którego nie da się rzetelnie sprawdzić. Do lokalnego developmentu służą edytowalne pola nagłówka i payloadu, które pozwalają zmienić dowolne roszczenie — na przykład identyfikator użytkownika albo rolę — i podpisać token ponownie tym samym sekretem HS256, którego używa Twój serwer testowy; to popularny sposób testowania logiki autoryzacji bez uruchamiania pełnego procesu logowania.

Ponieważ payload JWT po zdekodowaniu to zwykły, czytelny JSON, narzędzie to naturalnie współgra z JSON Formatter & Validator, jeśli chcesz dokładniej przyjrzeć się głęboko zagnieżdżonemu roszczeniu. Warto powtórzyć jedną uwagę dotyczącą bezpieczeństwa: skoro dekodowanie nie wymaga żadnego sekretu, każdy token traktuj jako wrażliwy natychmiast po zakończeniu jego sprawdzania i rotuj poświadczenia, które miały być tylko krótkotrwałe, jeśli nie masz pewności, gdzie indziej zostały wcześniej wklejone.

Najczęstsze pytania

Czy to narzędzie potrafi zweryfikować podpis JWT, a nie tylko go zdekodować?

Tak — obsługiwana jest weryfikacja podpisów HMAC (HS256/384/512) i RSA (RS256/384/512).

Czy mój token lub sekret jest gdziekolwiek wysyłany?

Nie — dekodowanie, weryfikacja i ponowne podpisywanie odbywają się lokalnie w przeglądarce z użyciem Web Crypto API.

Czy mogę edytować payload i wygenerować nowy podpisany token?

Tak — edytuj JSON nagłówka/payloadu i podpisz ponownie sekretem HMAC, aby otrzymać nowy token.

Powiązane narzędzia