Przejdź do treści

header.payload.signature

Dekoder JWT

JSON Web Token (JWT) składa się z 3 części Base64url oddzielonych kropkami: nagłówka, payloadu i podpisu. Wklej token, aby odczytać jego claimy i czasy; jest tu dekodowany, a nie weryfikowany.

Token zostaje w tej karcie i nie jest nigdzie wysyłany. Zdekodowany token nie jest tokenem zaufanym: podpis nigdy nie jest tu sprawdzany.

Scanned by NortonTM Safe Web

W skrócie

Cena
Bez opłat
Konto
Niepotrzebne
Standardy
RFC 7519 (JWT), RFC 7515 (JWS), RFC 7516 (JWE)
Podpis
Niezweryfikowany — token jest tylko dekodowany
Czasy
exp, nbf i iat pokazane w UTC i porównane z Twoim zegarem
Wysyłanie plików
Brak — token zostaje w karcie przeglądarki

Przykładowy token i popularne algorytmy

Przykładowy token na tej stronie jest podpisany HMAC-SHA-256 przy użyciu jednorazowego klucza. Strona zdekodowała go, aby uzyskać pierwszą tabelę.

Claimy przykładowego tokena
ClaimWartośćCzas (UTC)
issauth.example.com—
subuser-42—
audapi—
iat17000000002023-11-14 22:13:20 UTC
exp17000036002023-11-14 23:13:20 UTC
Popularne algorytmy podpisu (alg)
algRodzinaHashRozmiar podpisu
HS256HMACSHA-25632 B
HS512HMACSHA-51264 B
RS256RSASSA-PKCS1-v1_5SHA-256256 B (2048-bit key)
ES256ECDSA P-256SHA-25664 B
ES512ECDSA P-521SHA-512132 B
EdDSAEdDSA—64 B (Ed25519)

Jak zdekodować JWT

1

Wklej token

Wklej cały token, z początkowym Bearer lub bez. Ma 3 części oddzielone kropkami albo 5, jeśli jest to zaszyfrowany JWE.

2

Odczytaj części

Nagłówek i payload pojawiają się jako sformatowany JSON, a każdy claim jest wypisany w tabeli. Czasy exp, nbf i iat są pokazane w UTC.

3

Sprawdź czas

Strona porównuje exp i nbf z zegarem Twojego urządzenia i mówi, czy token wygasł. Nie mówi, czy token jest autentyczny.

Jak zbudowany jest JWT

JWT (RFC 7519) zapisuje się jako header.payload.signature. Nagłówek i payload to obiekty JSON, każdy zakodowany w Base64url bez dopełnienia (RFC 4648, sekcja 5), a podpis to surowe bajty w tym samym kodowaniu. Dekodowanie zmienia tylko kodowanie, więc każdy, kto ma token, może odczytać jego payload: nie umieszczaj w nim sekretów. Nagłówek podaje algorytm podpisu w polu alg, na przykład HS256 (HMAC z SHA-256, podpis 32-bajtowy) lub RS256 (RSA z SHA-256, 256 bajtów dla klucza 2048-bitowego).

Ta strona dekoduje token i nie robi nic więcej. Nie sprawdza podpisu, bo wymaga to klucza, i nie może powiedzieć, czy token jest autentyczny, unieważniony lub akceptowany przez serwer. Porównuje claimy exp, nbf i iat, które liczą sekundy od 1970-01-01 UTC, z zegarem Twojego urządzenia i wypisuje je jako daty i godziny UTC. Token z 5 częściami to JWE: jego zawartość jest zaszyfrowana, więc można pokazać tylko nagłówek.

Pytania o JWT

Jak zdekodować JWT?

Wklej token w polu. Strona dzieli go na kropkach, zamienia dwie pierwsze części z Base64url i pokazuje je jako JSON. Początkowe Bearer jest pomijane. Dla przykładowego tokena nagłówek to {"alg":"HS256","typ":"JWT"}.

Czy ta strona weryfikuje podpis?

Nie. Weryfikacja wymaga sekretu lub klucza publicznego, a ta strona nigdy o niego nie prosi. Token, który się tu dekoduje, może nadal być sfałszowany, zmieniony lub unieważniony. Weryfikuj podpis we własnym kodzie serwera za pomocą utrzymywanej biblioteki JWT.

Co znaczą exp, iat i nbf?

To czasy w sekundach od 1970-01-01 UTC (RFC 7519). exp to moment wygaśnięcia tokena, nbf to czas, przed którym nie wolno go przyjmować, a iat to moment wystawienia. W przykładowym tokenie iat 1700000000 to 2023-11-14 22:13:20 UTC, a exp 1700003600 to godzinę później.

Czy można bezpiecznie wkleić tu prawdziwy token?

Token zostaje w karcie przeglądarki i nie jest nigdzie wysyłany. Mimo to aktywny token jest poświadczeniem: każdy, kto go ma, może go używać aż do wygaśnięcia. Wklejaj tokeny, które należą do Ciebie, a w miarę możliwości wybieraj wygasłe lub testowe.

Dlaczego mój token ma 5 części?

Token z 5 częściami to JWE, czyli zaszyfrowany JSON Web Token (RFC 7516). Jego payload jest zaszyfrowany dla odbiorcy, więc ta strona pokazuje tylko nagłówek i rozmiary części. Zawartości nie można tu odczytać.

Co znaczy „not Base64url” lub „not JSON”?

Każda z dwóch pierwszych części musi być tekstem Base64url, który dekoduje się do obiektu JSON. Strona wskazuje część, która zawodzi, i powód: znak spoza alfabetu, bajty niebędące UTF-8 albo JSON z błędem w danej linii i kolumnie. Zwykle przyczyną jest token ucięty lub z dodatkowymi znakami.