Co to znaczy "podpisać JWT" i czemu to ważne?
JWT składa się z trzech części: header, payload, signature. Pierwsze dwie to zwykły base64 (każdy może odczytać), trzecia to podpis kryptograficzny, który gwarantuje, że nikt nie zmienił danych po drodze.
Tu podpisujesz JWT (sign) albo weryfikujesz czy istniejący podpis jest prawdziwy (verify). Obsługujemy wszystkie standardowe algorytmy: HS256/384/512 (symetryczne, secret), RS256/384/512 (RSA), ES256/384/512 (ECDSA), PS256/384/512 (RSA-PSS).
Wszystko liczone lokalnie. Twój sekret/klucz prywatny nigdy nie opuszcza przeglądarki. To inny tool niż JWT Decoder (tylko dekoduje, nie podpisuje).
Jak korzystać
- Tryb Podpisz: w lewej kolumnie JSON nagłówka (header), w prawej payload. Wybierz algorytm z pierwszego rzędu pillsów.
- HMAC (HS256/384/512): podajesz wspólny sekret (string), tego samego sekretu używasz do weryfikacji. Najprostsze, większość API używa HS256.
- Asymetryczne (RS/ES/PS): wklejasz klucz prywatny w PEM (PKCS#8). Klucz publiczny rozdajesz konsumentom tokena. Bezpieczniejsze, bo serwer wystawiający token nie zna sekretu konsumentów.
- Pomocnik exp: dodaje claim "wygasa za 1h/1d/30d" do payloadu. JWT bez exp jest niebezpieczny (nigdy nie wygasa).
- Tryb Weryfikuj: wklej JWT i klucz/sekret. Zielony check = wszystko ok. Czerwony X = nieważny podpis, wygasł, albo coś innego.
Do czego się przydaje
Pięć typowych sytuacji, w których podpisujesz/weryfikujesz JWT:
- Tworzenie sesji użytkownika w API. Po zalogowaniu generujesz JWT zawierający user_id, role, exp, podpisujesz HS256 sekretem.
- Klucz API dla integracji. Wystawiasz partnerowi długoterminowy JWT (exp = +1 rok), on dołącza go do każdego requestu.
- Reset hasła. Wysyłasz e-mail z linkiem zawierającym JWT (exp = +1h, payload = user_id), użytkownik klika, weryfikujesz.
- Webhook signatures. Twoje API podpisuje webhook payloadem, partner weryfikuje publicznym kluczem zanim zaufa.
- Single Sign-On (SSO). Identity provider (Auth0, Okta) wystawia JWT, każda aplikacja w organizacji weryfikuje go publicznym kluczem.
Aby tylko zdekodować JWT (bez podpisywania), użyj JWT Decoder. Aby wygenerować parę kluczy do podpisywania, użyj JWT Keypair Generator.