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.
- iat 1700000000 = 2023-11-14 22:13:20 UTC
- exp 1700003600 = 2023-11-14 23:13:20 UTC
- HS256 = 32 B
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ę.
| Claim | Wartość | Czas (UTC) |
|---|---|---|
| iss | auth.example.com | — |
| sub | user-42 | — |
| aud | api | — |
| iat | 1700000000 | 2023-11-14 22:13:20 UTC |
| exp | 1700003600 | 2023-11-14 23:13:20 UTC |
| alg | Rodzina | Hash | Rozmiar podpisu |
|---|---|---|---|
| HS256 | HMAC | SHA-256 | 32 B |
| HS512 | HMAC | SHA-512 | 64 B |
| RS256 | RSASSA-PKCS1-v1_5 | SHA-256 | 256 B (2048-bit key) |
| ES256 | ECDSA P-256 | SHA-256 | 64 B |
| ES512 | ECDSA P-521 | SHA-512 | 132 B |
| EdDSA | EdDSA | — | 64 B (Ed25519) |
Jak zdekodować JWT
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.
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.
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.