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.
Tokeny to dane uwierzytelniające. To narzędzie dekoduje je i weryfikuje w twojej przeglądarce i nigdzie ich nie wysyła.
Nagłówek
Ładunek (payload)
| Pole (claim) | Wartość | Data | Stan |
|---|
- Algorytm (alg)
- —
- Podpis (Base64url)
- —
Zweryfikuj podpis
HS256/384/512: wpisz wspólny sekret. RS, PS, ES (256/384/512) i EdDSA: wklej klucz publiczny jako PEM (public key, RSA public key lub certyfikat) albo JWK (w zestawie JWK Set klucz jest dobierany po kid).
Jak odkodować token JWT
- Wklej token w pole JSON Web Token. Zadziała też cała wartość
Authorization: Bearer …: przedrostekBeareri wszystkie znaki nowej linii zostaną usunięte. - Token jest dekodowany na bieżąco podczas wpisywania (albo po kliknięciu Dekoduj). Nagłówek i Ładunek (payload) pojawiają się jako sformatowany JSON, każdy z własnym przyciskiem Kopiuj.
- Przejrzyj tabelę Daty w tokenie:
exp,nbfiiatsą pokazane jako surowa wartość, data w twojej strefie czasowej, czas względny („za 3 godziny”, „2 dni temu”) oraz stan, np. Wygasł albo Jeszcze nieważny. - Sprawdź ostrzeżenia nad wynikami – pojawiają się na przykład wtedy, gdy
algma wartośćnonealbo gdy data wygląda na milisekundy. - Aby sprawdzić podpis, podaj klucz w sekcji Zweryfikuj podpis i kliknij przycisk Zweryfikuj podpis.
Dekodowanie to nie weryfikacja
JWT składa się z trzech części w Base64url oddzielonych kropkami: header.payload.signature. Nagłówek i ładunek są tylko zakodowane, a nie zaszyfrowane, więc każdy, kto ma token, może je przeczytać – a to narzędzie odkoduje dowolny token bez klucza. Oznacza to również, że odkodowany ładunek niczego nie dowodzi: ktoś mógł go zmienić. Dopiero poprawny podpis pokazuje, że token wystawił właściciel klucza i że od tamtej pory nikt go nie modyfikował. Dlatego linia stanu pokazuje „Zdekodowano (podpis niezweryfikowany).”, dopóki nie wykonasz weryfikacji.
Token z pięcioma częściami to JWE (zaszyfrowany JWT). Jego treści nie da się odczytać bez klucza deszyfrującego i narzędzie wyraźnie o tym informuje.
Weryfikacja podpisu
- HS256, HS384, HS512 (HMAC): wpisz wspólny Sekret. W polu Format sekretu wskaż, czy to zwykły tekst (UTF-8), czy Base64/Base64url – niektórzy dostawcy przechowują sekrety w Base64. Możesz też wkleić JWK typu
oct. Jeśli sekret jest krótszy niż wynik funkcji skrótu (32 bajty dla HS256), narzędzie zaznaczy, że jest poniżej minimum z RFC 7518. - RS256/384/512, PS256/384/512, ES256/384/512 i EdDSA: wklej Klucz publiczny (PEM lub JWK). Akceptowane bloki PEM to
PUBLIC KEY,RSA PUBLIC KEYiCERTIFICATE(klucz jest wtedy odczytywany z certyfikatu X.509). Działa też pojedynczy JWK albo cały JWK Set: używany jest klucz, któregokidpasuje do nagłówka. Klucze prywatne są odrzucane – do weryfikacji nigdy nie są potrzebne. EdDSA obsługuje Ed25519 w przeglądarkach, których Web Crypto go implementuje.
Weryfikacja korzysta z interfejsu Web Crypto przeglądarki. Komunikat o niepoprawnym podpisie oznacza zły klucz albo zmieniony token. Pamiętaj, że algorytm jest tu brany z nagłówka tokena – prawdziwy serwer powinien natomiast mieć oczekiwany algorytm na sztywno w konfiguracji, bo inaczej atakujący może go sam wybrać.
Uwagi dotyczące bezpieczeństwa
- Tokeny to dane uwierzytelniające. Kto ma ważny token dostępowy, zwykle może działać w imieniu jego właściciela aż do wygaśnięcia. To narzędzie dekoduje i weryfikuje wszystko w twojej przeglądarce i nigdzie nie wysyła ani tokena, ani klucza. Mimo to unikaj wklejania tokenów produkcyjnych do narzędzi, których nie możesz sprawdzić.
alg: noneoznacza token bez podpisu. Każdy może taki podrobić, a serwer musi go odrzucić. Narzędzie pokazuje ostrzeżenie i odmawia „weryfikacji” takiego tokena.- Sprawdzanie czasu odbywa się według zegara twojego komputera, bez żadnej tolerancji; serwery często dopuszczają minutę lub dwie różnicy zegarów.
- Daty w JWT (NumericDate) to sekundy od 1 stycznia 1970 r. UTC. Wartość 13-cyfrowa to najpewniej milisekundy – częsty błąd.
Najczęściej zadawane pytania
Czy to narzędzie powie mi, czy token jest ważny?
Powie, czy podpis pasuje do podanego klucza i czy warunki exp oraz nbf są w tej chwili spełnione. To, czy token zostanie zaakceptowany, zależy jednak także od kontroli znanych tylko serwerowi: oczekiwanego wystawcy (iss), odbiorcy (aud), algorytmu i ewentualnego unieważnienia.
Dlaczego weryfikacja nie przechodzi, choć sekret jest dobry?
Sprawdź Format sekretu: sekret w Base64 wpisany jako tekst daje zupełnie inny klucz. Upewnij się też, że do sekretu nie dopisała się spacja ani znak nowej linii – klucze HMAC są porównywane bajt po bajcie.
Czym różnią się RS256, PS256 i ES256?
Wszystkie trzy to podpisy z kluczem publicznym i SHA-256. RS256 używa RSA z dopełnieniem PKCS#1 v1.5, PS256 – RSA z dopełnieniem PSS, a ES256 – ECDSA na krzywej P-256, co daje znacznie krótsze podpisy.
Gdzie znajdę klucz publiczny dostawcy tożsamości?
Dostawcy tożsamości publikują JWKS (JSON Web Key Set), zwykle podlinkowany w /.well-known/openid-configuration pod kluczem jwks_uri. Otwórz go samodzielnie i wklej tu JSON; narzędzie wybierze klucz po kid i niczego nie pobiera z sieci.
Czy wklejanie tokena tutaj jest bezpieczne?
Token zostaje na twoim urządzeniu: dekodowanie i weryfikacja odbywają się lokalnie, nic nie jest przesyłane. Dla większej ostrożności używaj tokena wygasłego lub testowego, gdy chcesz tylko obejrzeć jego strukturę.
Podobne narzędzia
- 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.
- Koder i dekoder Base64 Darmowy koder i dekoder Base64 z pełną obsługą UTF-8 i opcją base64url bezpieczną dla URL. Działa w przeglądarce, nic nie jest wysyłane.
- 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.