DevToolPal
PL

Koder i podpisywanie JWT

Tworzy i podpisuje JSON Web Token z ładunku JSON algorytmami HS256/384/512 albo RS, PS i ES z kluczem prywatnym PEM.

Działa lokalnie, nic nie jest wysyłane

Opcje

Format sekretu

Ładunek (JSON)

0 znaków · 0 B

JWT

0 znaków · 0 B

Do czego służy

JSON Web Token (JWT, RFC 7519) to zwarty, bezpieczny dla URL ciąg z trzech części oddzielonych kropkami: nagłówka z algorytmem podpisu, ładunku z oświadczeniami (claims) i podpisu dwóch pierwszych części. API używają JWT jako tokenów bearer, a dostawcy tożsamości jako tokenów ID.

Narzędzie tworzy i podpisuje token z ładunku JSON. Obsługuje:

  • HS256, HS384, HS512: HMAC ze wspólnym sekretem, jako tekst lub Base64.
  • RS256, RS384, RS512 i PS256, PS384, PS512: podpisy RSA kluczem prywatnym PEM.
  • ES256, ES384, ES512: podpisy ECDSA kluczem prywatnym EC.

Jak używać

  1. Zapisz ładunek jako obiekt JSON albo kliknij Przykład.
  2. Wybierz Algorytm i wpisz sekret lub wklej klucz prywatny PEM na górze pola wejściowego.
  3. Opcjonalnie ustaw iat na teraz, dodaj wygaśnięcie (exp) lub dodatkowe pola nagłówka, na przykład identyfikator klucza.
  4. Skopiuj token z wyniku. Wklej go do dekodera JWT, aby go obejrzeć.

Przykład

Z sekretem your-256-bit-secret poniższy ładunek podpisany HS256 daje znany przykładowy token z jwt.io:

{"sub":"1234567890","name":"John Doe","iat":1516239022}

Nagłówek jest zawsze zapisywany jako {"alg":"HS256","typ":"JWT"}, a po nim dodane pola; alg zawsze odpowiada wybranemu algorytmowi.

Dobre praktyki

Utrzymuj krótki czas życia tokenów dzięki exp i ustawiaj iss oraz aud, aby token jednej usługi nie mógł być użyty w innej. Na serwerze zawsze weryfikuj podpis z jawną listą dozwolonych algorytmów i odrzucaj none. Sekrety HMAC powinny być długie i losowe, co najmniej tak długie jak wynik skrótu (32 bajty dla HS256).

FAQ

› Który algorytm wybrać?

Ten, który weryfikuje twój serwer. HS256 używa wspólnego sekretu i jest typowy w obrębie jednego systemu. RS256 i ES256 podpisują kluczem prywatnym, a każdy może zweryfikować kluczem publicznym, co pasuje do tokenów sprawdzanych przez wiele usług. ES256 daje znacznie krótsze podpisy niż RS256.

› Jakie formaty kluczy prywatnych są obsługiwane?

Klucze PEM w formacie PKCS#8 (BEGIN PRIVATE KEY), PKCS#1 RSA (BEGIN RSA PRIVATE KEY) i SEC1 EC (BEGIN EC PRIVATE KEY). Zaszyfrowane klucze trzeba najpierw wyeksportować bez frazy. Dla ES256, ES384 i ES512 klucz musi leżeć odpowiednio na krzywej P-256, P-384 lub P-521.

› Czy ładunek JWT jest tajny?

Nie. Nagłówek i ładunek są tylko zakodowane w Base64URL i każdy, kto ma token, może je odczytać. Podpis chroni przed zmianami, a nie przed odczytem. Nigdy nie umieszczaj haseł ani innych sekretów w ładunku JWT.

› Czy mój sekret lub klucz prywatny jest zapisywany albo wysyłany?

Nie. Podpisywanie odbywa się w przeglądarce przez Web Crypto API. Sekret lub klucz istnieją tylko w pamięci tej strony: nie są zapisywane, nie trafiają do paska adresu ani do linków udostępniania. Mimo to nie wklejaj kluczy produkcyjnych na stronach, których nie kontrolujesz.