Dekoder JWT: odczyt i weryfikacja JSON Web Token
Dekoder JWT pokazuje, co kryje się w JSON Web Token: nagłówek, payload i podpis, a także wystawcę, termin ważności i ważność wprost. Po wpisaniu klucza tajnego lub publicznego sprawdzi nawet podpis. Token nie opuszcza Twojej przeglądarki.
Źródło: §§ 2, 4.1 (Claims, NumericDate), IETF RFC 7519 – JSON Web Token (JWT). Stan na: .
Jak to obliczamy
JSON Web Token (JWT) przenosi oświadczenia (claimy) między dwiema stronami – zwykle po zalogowaniu, jako dowód, że „ten użytkownik jest zalogowany”. Składa się z trzech części rozdzielonych kropkami: nagłówek.payload.podpis (RFC 7519, RFC 7515).
Jak zdekodować JWT
- Wklej token do górnego pola (z „Bearer” lub bez).
- Nagłówek i payload pojawią się od razu jako czytelny JSON, a pod nimi termin ważności i wystawca.
- Opcjonalnie: wpisz klucz w polu „Klucz tajny lub publiczny”, a narzędzie zweryfikuje podpis.
Co zawiera token
- Nagłówek: algorytm (
alg, np. HS256 lub RS256) i typ (typ). - Payload: claimy. Zarejestrowane to m.in.
iss(wystawca),sub(podmiot),aud(odbiorca),exp(wygasa),nbf(nie przed),iat(wystawiono) ijti(ID). Czasy to sekundy od 1970; narzędzie pokazuje je jako daty w UTC. - Podpis: chroni przed zmianą, jeśli odbiorca sprawdzi go właściwym kluczem.
Ważne: odczyt to nie weryfikacja
Nagłówek i payload są tylko zakodowane w base64url, nie zaszyfrowane. Każdy, kto zobaczy token, może go odczytać – haseł i innych tajemnic w nim być nie powinno. Bez sprawdzenia podpisu treść niczego nie dowodzi, bo każdy może ją zmienić. Weryfikacja działa tu z kluczem tajnym HMAC (HS256/384/512) i kluczem publicznym (RS, PS, ES); token z alg: none nie jest podpisany.
Ochrona przed algorithm confusion
Znany atak podsuwa serwerowi token z alg: HS256 podpisany kluczem publicznym jako sekretem. Dlatego narzędzie odmawia weryfikacji, gdy jako sekret HS wpisano klucz publiczny lub prywatny (RFC 8725 radzi nigdy nie brać algorytmu wyłącznie z tokena).
Ograniczenia
- Zaszyfrowanych tokenów (JWE, pięć części) nie da się odczytać bez klucza; pokazany jest tylko nagłówek.
- Weryfikacji dla EdDSA i certyfikatów nie ma. To, czy token jest ważny dla Twojej aplikacji, zależy od wystawcy, odbiorcy i terminu, które Twój serwer musi sprawdzić sam.
- Tokeny produkcyjne należą tylko na urządzenia, którym ufasz. Tu nic nie jest wysyłane ani zapisywane, ale bezpieczniejszy jest token testowy lub wygasły.
Najczęściej zadawane pytania
Czym jest JWT?
JSON Web Token to zwarty, bezpieczny dla adresów URL ciąg z trzech części (nagłówek, payload, podpis). Przenosi claimy, np. ID użytkownika lub termin ważności, i często służy jako dowód dostępu po zalogowaniu.
Czy każdy może odczytać treść JWT?
Tak. Nagłówek i payload są tylko zakodowane w base64url, nie zaszyfrowane. Przed zmianą chroni wyłącznie podpis, nie przed odczytem. Nie umieszczaj więc w JWT tajemnic.
Jak zweryfikować podpis JWT?
W polu „Klucz tajny lub publiczny” wpisz klucz tajny dla HS256/384/512 albo klucz publiczny w PEM lub JWK dla RS256, PS256 lub ES256. Wynik pojawi się przy „Podpis”.
Czy bezpiecznie jest wklejać token do dekodera online?
Ten dekoder działa w całości w przeglądarce i niczego nie wysyła. Mimo to ważny token jest dowodem dostępu. Jeśli możesz, używaj tokenów testowych lub już wygasłych.
Co oznaczają exp, iat i nbf?
exp to chwila wygaśnięcia tokena, iat chwila wystawienia, a nbf chwila, od której token obowiązuje. Wszystkie trzy to sekundy od 1 stycznia 1970 UTC.
Dlaczego narzędzie pisze „nie sprawdzono”?
Bez klucza nie ma czym zweryfikować podpisu, więc treść jest tylko odczytana. Także nieobsługiwane algorytmy lub nieodpowiednie formaty kluczy pomijają sprawdzenie.
Źródła i podstawa prawna
- §§ 2, 4.1 (Claims, NumericDate): IETF RFC 7519 – JSON Web Token (JWT)
- §§ 3, 7.1, Anhang A.1 (Testbeispiel HS256): IETF RFC 7515 – JSON Web Signature (JWS)
- § 3 (HS, RS, ES, PS): IETF RFC 7518 – JSON Web Algorithms (JWA)
- §§ 2.1, 3.1 (Algorithmus-Verwechslung, Algorithmus pruefen): IETF RFC 8725 – JSON Web Token Best Current Practices
- W3C Web Cryptography API (SubtleCrypto.verify)
Stan na: · Zasady redakcyjne
Podobne narzędzia
- Kodowanie i dekodowanie Base64Kodowanie i dekodowanie Base64 oraz Base64url z poprawnym UTF-8, do tego kodowanie URL (percent-encoding). Jasne komunikaty błędów, działa w przeglądarce.
- Generator hash: SHA-256, SHA-512, SHA-1, MD5Generator hash online: oblicz SHA-256, SHA-384, SHA-512, SHA-1 i MD5 tekstu lub pliku i sprawdź sumę kontrolną – lokalnie w przeglądarce, bez wysyłania.
- JSON formatter, walidator i minifikatorSprawdź JSON według RFC 8259: dokładna linia, kolumna i zrozumiały opis błędu. Formatowanie JSON, minifikacja, sortowanie kluczy – lokalnie w przeglądarce.
- Konwerter czasu Unix (timestamp)Konwerter czasu Unix: zamień timestamp na datę i datę na timestamp. Sekundy, milisekundy, mikro- i nanosekundy rozpoznawane automatycznie; UTC i ISO 8601.
- Generator UUID: twórz i sprawdzaj UUID v4 i v7Generuj UUID online: wersja 4 (losowa) lub 7 (z czasem, sortowalna), do 1000 naraz. Sprawdź poprawność UUID i odczytaj wersję, wariant i znacznik czasu.
- Generator hasełGenerator haseł online: twórz silne, losowe hasła i łatwe do zapamiętania frazy z wyrazów, z entropią w bitach – wszystko w przeglądarce, nic nie jest wysyłane.
- Moje IP – jaki mam adres IP?Moje IP od razu: pokazuje Twój publiczny adres IP, rozpoznaje IPv4 lub IPv6 i wyjaśnia różnicę. Za darmo, bez rejestracji – adres IP nie jest zapisywany.
- Porównaj dwa pliki JSONPorównaj JSON: znajdź różnice między dwoma dokumentami JSON ze ścieżką, starą i nową wartością. Kolejność kluczy bez znaczenia. W przeglądarce.
- Kalkulator chmodKalkulator chmod: zaznacz uprawnienia albo wpisz 755, rwxr-xr-x lub u=rwx i zobacz wszystkie zapisy, z poleceniem do skopiowania. Bezpłatnie, w przeglądarce.