Darmowy konwerter

Token JWT Dekoder

Odkoduj nagłówek i ładunek JWT (JSON Web Token) natychmiast w przeglądarce. Bezpłatne, prywatne i po stronie klienta — żadne dane nie są wysyłane na żaden serwer.

O tym narzędziu

Tokeny internetowe JSON (JWT) to kompaktowy, bezpieczny dla adresów URL format przesyłania roszczeń między dwiema stronami, zdefiniowany w dokumencie RFC 7519. JWT to trzy segmenty zakodowane w formacie base64url oddzielone kropkami: nagłówek (algorytm i typ tokena), ładunek (oświadczenia) i podpis (kryptograficzny dowód autentyczności). Nagłówek i ładunek to JSON, zakodowany w formacie base64url w celu zapewnienia bezpieczeństwa adresu URL; podpis wykorzystuje jeden z kilku algorytmów (HS256, RS256, ES256 i inne) w oparciu o zakodowany nagłówek i ładunek.

Dekodowanie JWT — dzielenie go na segmenty i dekodowanie każdego z nich w formacie base64 — nie wymaga żadnego sekretu. Każda osoba posiadająca tekst tokena może przeczytać jego nagłówek i ładunek. Podpis można jednak zweryfikować jedynie za pomocą sekretu (HMAC) lub klucza publicznego (asymetryczny). Dekodowanie służy do kontroli; weryfikacja jest tym, co potwierdza autentyczność.

Ten dekoder dzieli token, dekoduje każdy segment za pomocą base64, analizuje nagłówek i ładunek jako JSON i wyświetla wynik. Nie podejmuje próby weryfikacji podpisu, ponieważ wymaga to tajnego lub publicznego klucza, którego dekoder nie posiada. Zdekodowany wynik to kontrola tylko do odczytu — przydatna do debugowania tokenów, ale nie zastępuje właściwej weryfikacji w kodzie aplikacji.

Po co dekodować JWT

Debugowanie problemów z uwierzytelnianiem prawie zawsze wiąże się ze sprawdzaniem tokenów. Token, który wygląda na prawidłowy w kodzie, może zawierać błędne oświadczenia, nieoczekiwany algorytm, wygasłą sygnaturę czasową ważności lub niedopasowanie odbiorców. Dekodowanie tokena ujawnia dokładnie, co wyprodukował emitent.

Pomocne jest również sprawdzanie tokenów podczas prac integracyjnych. Podczas łączenia się z zewnętrznym interfejsem API lub dostawcą tożsamości rzeczywiste nazwy, formaty i strukturę roszczeń najlepiej zrozumieć poprzez dekodowanie przykładowych tokenów, zamiast polegać na dokumentacji, która może być nieaktualna.

Jak używać

Wklej token, pobierz przeanalizowaną zawartość.

  1. Wklej swój JWT: Upuść pełny token (header.payload.signature) w obszarze wejściowym. Dekoder akceptuje tokeny z opcjonalnym prefiksem nośnika lub bez niego.
  2. Sprawdź nagłówek: Nagłówek pokazuje algorytm podpisywania (alg) i typ tokena (typ). Typowe algorytmy to HS256, RS256 i ES256. Uważaj na alg: none, który sygnalizuje niepodpisany token i rzadko jest bezpieczny w produkcji.
  3. Sprawdź ładunek: Ładunek zawiera oświadczenia: iss (wydawca), sub (podmiot), aud (odbiorcy), exp (wygaśnięcie), iat (wystawiony w) oraz wszelkie oświadczenia specyficzne dla aplikacji. Standardowe znaczniki czasu to sekundy epoki Uniksa.
  4. Sprawdź osobno: Dekoder nie weryfikuje podpisu. Aby sprawdzić autentyczność, uruchom token za pośrednictwem biblioteki JWT z odpowiednim kluczem tajnym lub publicznym w kodzie aplikacji.

Typowe przypadki użycia

Szczegóły techniczne

Format JWT to trzy segmenty połączone kropkami. Każdy segment jest zakodowany w formacie base64url — bezpiecznym dla adresu URL wariantem base64, w którym używane są - i _ zamiast + i /, czasami z pominięciem dopełnienia. Dekodowanie wymaga cofnięcia podstawień bezpiecznych dla adresów URL, dopełnienia segmentu i dekodowania base64.

Nagłówek i ładunek są po dekodowaniu w formacie JSON. Segment podpisu jest binarny (surowe bajty podpisu) i nie jest czytelny dla człowieka; wymaga klucza weryfikacyjnego, aby był użyteczny.

Typowe oświadczenia zdefiniowane w RFC 7519: iss (wystawca), sub (identyfikator podmiotu), aud (odbiorcy), exp (wygaśnięcie w sekundach epoki Uniksa), nbf (nie przed znacznikiem czasu), iat (wystawiony w znaczniku czasu), jti (unikalny identyfikator tokena). Oświadczenia specyficzne dla aplikacji mogą pojawiać się pod dowolną nazwą.

Najlepsze praktyki

Często zadawane pytania

Czy wklejenie tutaj mojego JWT jest bezpieczne?
Tak. Dekodowanie odbywa się całkowicie w przeglądarce — token nigdy nie jest wysyłany na żaden serwer. Jednak JWT to dane uwierzytelniające — nie udostępniaj ich publicznie (na zrzutach ekranu, w postach Stack Overflow itp.), ponieważ mogą one zapewnić dostęp do Twoich kont.
Czy to narzędzie weryfikuje podpis JWT?
To narzędzie dekoduje i wyświetla zawartość tokena. Weryfikacja podpisu wymaga tajnego klucza (HMAC) lub klucza publicznego (RSA/ECDSA), który powinien pozostać na Twoim serwerze. Narzędzie pokazuje zastosowany algorytm, ale nie może zweryfikować go bez klucza.
Co oznaczają standardowe roszczenia JWT?
iss = wystawca, sub = temat (identyfikator użytkownika), exp = czas wygaśnięcia (znacznik czasu Unix), iat = wydany o, nbf = nie wcześniej, aud = publiczność, jti = identyfikator JWT. Oświadczenia niestandardowe mogą zawierać dowolne dane specyficzne dla aplikacji.
Dlaczego każdy może dekodować JWT?
Tokeny JWT są kodowane, a nie szyfrowane. Ładunek jest zakodowany w formacie Base64URL (nie jest szyfrowany), więc każdy może go odczytać. Podpis zapobiega manipulacji, a nie czytaniu. Nigdy nie przechowuj wrażliwych danych (hasła, numery SSN) w ładunkach JWT.
Dlaczego na niektórych tokenach brakuje podpisu?
Tokeny z alg: żadne nie mają podpisu. Są to ważne JWT według specyfikacji, ale nie dają gwarancji autentyczności i nie powinny być akceptowane w produkcji.
Czy JWT są szyfrowane?
Standardowe ładunki JWT są podpisane, ale nie szyfrowane. JWE (JSON Web Encryption, RFC 7516) to odrębny format zaszyfrowanych tokenów. Większość JWT na wolności to JWS (tylko z podpisem).
Czy mój token został przesłany na serwer?
Nie. Dekodowanie odbywa się w Twojej przeglądarce; token nie opuszcza Twojego urządzenia.
Jak długie są zazwyczaj JWT?
Dowolnie od kilkuset do kilku tysięcy znaków. Długość zależy od liczby i rozmiaru roszczeń oraz długości podpisu (która zależy od algorytmu).