Generator JWT

Generuj JWT

Stwórz i podpisz token JWT bezpośrednio w przeglądarce. Wpisz wymagania dotyczące zawartości tokena (standaryczne wartości sub, aud, exp itd.) oraz dowolny dodatkowy tekst, wybierz algorytm (HS256 z sekretem wspólnym lub RS256/ES256 z kluczem prywatnym) – narzędzie wygeneruje token składający się z trzech części. Należy do narzędzi przydatnych do rozwoju lokalnego, testowania obciążenia oraz powtórnego generowania problemów z autentyfikacją.

Jak wygenerować JWT

  1. 1

    Napisz ładunek.

    Wymagania standardowe (`sub`, `iss`, `aud`, `exp`, `iat`, `nbf`) oraz wszystkie indywidualne wymagania oczekiwane przez aplikację.

  2. 2

    Wybierz algorytm

    HS256/384/512 z tajnym kluczem wspólnym lub RS256/ES256 z prywatnym kluczem w formacie PEM.

  3. 3

    Udostępnij klucz.

    Zadaj wspólny tekst szyfrowany dla HMAC lub wklej klucz prywatny dla RSA/ECDSA – oba elementy pozostają w przeglądarce.

  4. 4

    Zostań

    Rezultatem jest podpisany token. Kopiuj go, używaj w testach i dekoduj za pomocą narzędzia JWT Decoder w celu jego analizy.

Typowy obciążenie dla tokenu upoważnionego użytkownika

{
  "iss": "https://auth.example.com",
  "aud": "api.example.com",
  "sub": "user_12345",
  "iat": 1713398400,
  "nbf": 1713398400,
  "exp": 1713402000,
  "jti": "3c7c7e14-2de4-41f0-bf09-1eb5cfad4c01",
  "scope": "read:profile write:posts"
}

Wybór algorytmu: HMAC w porównaniu z algorytmem asymetrycznym

Algoritm Typ klucza Używa się w przypadku
HS256 Sekret wspólny o wielkości 256 bitów Monolit samodzielnie podpisujący i weryfikujący się
HS384/512 Dłuższy sekret Takie samo jak HS256, lepsza odporność na ataki
RS256 RSA 2048+ Podpis emitenta; wiele usług wykorzystuje klucz publiczny do weryfikacji
ES256 ECDSA P-256 Takie samo jak RS256, ale z mniejszymi podpisami
EdDSA Ed25519 Najszybsza asymetryczna weryfikacja, najmniejsze klucze

Siła klucza

  • Sekrety HMAC muszą mieć co najmniej taką samą entropię jak rozmiar wyjścia algorytmu. Algorytm HS256 wymaga 256 losowych bitów (32 bajty); mniejsza liczba może zostać złamana atakiem typu brute-force.
  • Klucze RSA powinny mieć co najmniej 2048 bitów; 3072 lub 4096 bitów dla tokenów o długim okresie życia.
  • ECDSA (ES256) zapewnia bezpieczeństwo porównywalne z RSA 3072, przy znacznie mniejszych kluczach i szybszym podpisywaniu.

Wskazówki dotyczące terminu ważności

Typ tokena Typowa trwałość exp
Token dostępu 5–60 minut
Token odnowienia dni do tygodni
Ponowne ustawienie hasła 5–15 minut
Weryfikacja e-maila 24 godziny
Usługa do usługi 1–5 minut (krótki czas)

Token z krótkim okresem ważności i funkcją odnowienia stanowi współczesny wzorzec. Tokeny dostępu o długiej trwałości trudno unieważnić w przypadku ich naruszenia.

Najczęstsze błędy

  • Ponowne użycie testowego sekretu w środowisku produkcyjnym. Generator oznacza sekrety HS256 oraz wynikowy JWT jako przeznaczone wyłącznie do testów, jeśli sekret wydaje się słaby. Zaufaj temu ostrzeżeniu.
  • Podpisywanie bez exp. JWT bez terminu wygaśnięcia jest ważny na zawsze. Zawsze ustawiaj exp, chyba że masz bardzo dobry powód oraz listę unieważnień.
  • Używanie alg z nagłówka po stronie weryfikującej. Zawsze dodawaj algorytmy do białej listy po stronie weryfikacji; nie kieruj się tym, o co prosi token.
  • Wklejanie tutaj prawdziwego klucza prywatnego. Ten generator działa w Twojej przeglądarce, ale traktuj klucze prywatne jak sekrety: używaj kluczy testowych, a nie produkcyjnych.

Najczęściej zadawane pytania

Nie. Podpisywanie odbywa się w Twoim przeglądarce za pomocą interfejsu Web Crypto API. Klucze nigdy nie opuszczają Twojego urządzenia. Jednak klucze produkcyjne należy generować i podpisywać w kontrolowanym środowisku – nie w przeglądarce.

HS256 jest odpowiedni dla systemu monolitycznego, w którym podpisy i weryfikacje są realizowane przez ten sam podmiot. RS256 lub ES256 są lepsze w przypadku gdy emitent jest oddzielony od weryfikatora – klucze publiczne można dzielić bez ujawnienia klucza podpisowego.

Czas odbioru tokenów dostępu wynosi typowo od 5 do 15 minut. Aby zapewnić płynne doświadczenie użytkownika, używaj tokenów odnowiania o dłuższym okresie ważności. Nie wydawaj JWT bez wymogu exp.

Narzędzie umożliwia wygenerowanie tokenów typu alg: none w celu celowego testowania uszkodzonych lub niepodpisanych tokenów, wraz z wyraźnym ostrzeżeniem. Nie przyjmuj takich tokenów w kodzie produkcyjnym.

Powiązane narzędzia

Narzędzie jest dostępne w innych językach