Darmowy generator sekretu JWT — HS256/384/512
Wygeneruj mocny, zgodny z RFC sekret JWT dla HS256/384/512 — w 100% w przeglądarce, nigdy nie wysyłany na serwer. base64url, base64 lub hex; kopiuj do .env.
Równoważne polecenia CLI
Czym jest generator sekretu JWT?
Generator sekretu JWT wytwarza losowy klucz podpisujący, którego token JSON Web Token podpisany HMAC używa, aby dowieść, że nie został naruszony. Gdy podpisujesz token za pomocą HS256, HS384 lub HS512, algorytm uruchamia HMAC na nagłówku i ładunku tokenu, używając jednego współdzielonego sekretu; weryfikator ponownie oblicza ten sam HMAC z tym samym sekretem i akceptuje token tylko wtedy, gdy podpisy się zgadzają. Całe bezpieczeństwo tego schematu opiera się na tym, że sekret jest długi i nieprzewidywalny — a dokładnie to tworzy to narzędzie: losowy ciąg o wysokiej entropii, wygenerowany w Twojej przeglądarce, o rozmiarze dobranym poprawnie do wybranego algorytmu.
Warto być precyzyjnym co do tego, co to narzędzie robi, a czego nie. Generuje klucz sekretu — wartość, którą wstawiasz do zmiennej środowiskowej JWT_SECRET — a nie gotowy token. Jeśli chcesz złożyć nagłówek i ładunek oraz podpisać je w prawdziwy JWT, to zadanie kodera JWT; aby rozłożyć istniejący token i zweryfikować jego podpis, użyj dekodera JWT. Pomyśl o sekrecie jak o kluczu, a o koderze jak o zamku, który ten klucz obsługuje: generujesz klucz raz, bezpiecznie go przechowujesz i ponownie używasz do podpisywania oraz weryfikowania wielu tokenów.
Jak długi powinien być klucz? Odpowiedź jest ustalona przez specyfikację, a nie przez preferencje. RFC 7518 §3.2 — standard JSON Web Algorithms — wymaga, aby klucz HMAC był co najmniej tak duży jak wynik haszowania: „MUSI być użyty klucz o rozmiarze takim samym jak wynik haszowania (na przykład 256 bitów dla HS256) lub większy”. Daje to czytelną tabelę, którą generator stosuje automatycznie:
| Algorytm | HMAC | Min bajtów | Min bitów | znaki hex | znaki base64 | znaki base64url | |-----------|------|-----------|----------|-----------|--------------|-----------------| | HS256 | HMAC-SHA-256 | 32 | 256 | 64 | 44 | 43 | | HS384 | HMAC-SHA-384 | 48 | 384 | 96 | 64 | 64 | | HS512 | HMAC-SHA-512 | 64 | 512 | 128 | 88 | 86 |
Liczby znaków wynikają z kodowań RFC 4648 tych długości bajtów: hex podwaja liczbę bajtów; base64 rozszerza o 4⁄3 z dopełnieniem; base64url pomija dopełnienie, więc 32-bajtowy klucz to 43 znaki base64url, a nie 44. base64url jest natywnym kodowaniem JWT — bezpieczny dla adresów URL alfabet bez dopełnienia — i dlatego jest tu domyślnym wyjściem; sekret w base64url może znaleźć się w nagłówku, adresie URL lub wartości konfiguracji bez escapowania.
Losowość to ta część, na której nie możesz pójść na kompromis. Ten generator pobiera bajty z crypto.getRandomValues, kryptograficznie bezpiecznego generatora liczb pseudolosowych przeglądarki, tego samego prymitywu, który stoi za generowaniem kluczy Web Crypto. Nigdy nie używa Math.random, który jest szybki, ale przewidywalny i całkowicie nieodpowiedni dla klucza podpisującego — przewidywalny RNG oznacza odgadywalny sekret, a odgadywalny sekret oznacza fałszowalne tokeny. Ponieważ weryfikacja HMAC odbywa się lokalnie ze współdzielonym sekretem, atakujący, który przechwyci token, może złamać słaby klucz siłą offline bez żadnego limitu szybkości; narzędzia takie jak hashcat (tryb 16500) i jwt_tool istnieją właśnie po to. Pełnoentropijny 32-bajtowy losowy klucz jest natomiast obliczeniowo poza zasięgiem. Wniosek jest dosadny: nigdy nie używaj hasła, słowa ze słownika ani ręcznie wpisanego ciągu jako sekretu JWT — wygeneruj losowy.
Wreszcie, generowanie klucza po stronie klienta samo w sobie jest właściwością bezpieczeństwa. Sekret podpisujący nigdy nie powinien być przesyłany do strony trzeciej, nawet do witryny, która pomaga go utworzyć. Każdy bajt tutaj jest wytwarzany i kodowany w Twojej przeglądarce; nic nie jest przesyłane, logowane ani przechowywane. Gdy będziesz gotów wdrożyć klucz, przycisk Kopiuj do .env podaje Ci wiersz JWT_SECRET=…, a jeśli potrzebujesz go wpleść w większą konfigurację, pomóc może konwerter JSON na .env. Wygeneruj, skopiuj, przechowaj w menedżerze sekretów — i rotuj z nagłówkiem kid oraz nakładającymi się oknami ważności, gdy nadejdzie czas.
// The secret you generate here goes straight into your signing code.
// Node.js with jsonwebtoken — the JWT_SECRET env var holds the key.
import jwt from 'jsonwebtoken';
const secret = process.env.JWT_SECRET; // e.g. base64url value from this tool
// Sign a token with HS256 (HMAC-SHA-256).
const token = jwt.sign({ sub: 'user-42', role: 'member' }, secret, {
algorithm: 'HS256',
expiresIn: '15m'
});
// Verify it — pin the algorithm to a whitelist; never trust the token's alg.
const payload = jwt.verify(token, secret, { algorithms: ['HS256'] });
// ---------------------------------------------------------------
// Python with PyJWT — same secret, same algorithm pinning.
// import jwt
// token = jwt.encode({"sub": "user-42"}, key, algorithm="HS256")
// payload = jwt.decode(token, key, algorithms=["HS256"]) # whitelist!
// ---------------------------------------------------------------
// Equivalent-strength CLI generation (32 bytes for HS256):
// openssl rand -base64 32
// node -e "console.log(require('crypto').randomBytes(32).toString('base64url'))"
// python -c "import secrets; print(secrets.token_urlsafe(32))" Kluczowe funkcje
Długość klucza świadoma algorytmu
Wybierz HS256, HS384 lub HS512, a generator automatycznie ustawi minimalny rozmiar klucza z RFC 7518 §3.2 — 32, 48 lub 64 bajty. Możesz zażądać dłuższego klucza, ale nigdy przypadkiem nie zapewnisz zbyt małego, który narusza specyfikację lub którym restrykcyjna biblioteka odmówi podpisania.
Trzy bezpieczne tekstowo formaty wyjściowe
Otrzymaj te same losowe bajty jako base64url (natywne, bezpieczne dla adresów URL kodowanie JWT bez dopełnienia — domyślne), standardowy base64 lub hex, pokazane obok siebie. base64url to najbezpieczniejszy domyślny wybór dla JWT_SECRET; zmień format, gdy konkretny loader lub biblioteka oczekuje innego. Entropia jest identyczna we wszystkich trzech.
Kryptograficznie bezpieczna losowość
Każdy sekret jest pobierany z crypto.getRandomValues, CSPRNG przeglądarki i prymitywu stojącego za generowaniem kluczy Web Crypto. Nigdy Math.random. To gwarantuje pełnoentropijny klucz bez przewidywalnej struktury — właściwość, która stawia sekret poza zasięgiem ataku siłowego offline.
Kopiuj do .env jednym kliknięciem
Kopiuj do .env opakowuje wartość w konwencjonalne przypisanie JWT_SECRET=…, jeden wiersz, bez cudzysłowów — gotowe do wklejenia do pliku .env, sekretu Dockera lub zmiennej CI bez ręcznego wpisywania nazwy klucza. Zwykłe Kopiuj pobiera surowy sekret, gdy potrzebujesz tylko wartości.
Równoważne polecenia CLI
Panel wypisuje pasujące jednowierszowce openssl rand, Node crypto.randomBytes i Python secrets dla wybranego algorytmu, więc możesz odtworzyć klucz o równej sile w skrypcie provisioningu lub Dockerfile. Większość konkurencyjnych narzędzi to pomija; tutaj jest wbudowane.
Maskowanie Pokaż / Ukryj
Sekret jest domyślnie zamaskowany, więc pozostaje poza ekranem podczas pokazu, samouczka czy udostępniania ekranu. Odsłoń go ikoną oka dopiero, gdy będziesz gotów do skopiowania. Akcje kopiowania zawsze umieszczają prawdziwy sekret na schowku, niezależnie od tego, czy jest pokazany, czy ukryty.
W 100% prywatne, tylko w przeglądarce
Sekret jest generowany, kodowany i wyświetlany w całości na Twoim urządzeniu. Żadnych żądań sieciowych, logowania ani przechowywania — sprawdź w narzędziach deweloperskich → Sieć. Klucz podpisujący nigdy nie powinien trafić do strony trzeciej, a tutaj nigdy nie trafia, co jest całym powodem, by generować go po stronie klienta.
Dostępne w 15 językach
Pełny interfejs — etykiety, instrukcje i wskazówki — jest zlokalizowany na 15 języków, więc narzędzie jest użyteczne, a porady bezpieczeństwa zrozumiałe niezależnie od tego, gdzie pracuje Twój zespół.
Przykłady krok po kroku
Wygeneruj sekret HS256 w base64url (domyślnie)
Algorytm: HS256 · Format: base64url
3sJ9aFq2kP7mWcZ1xL0nVtRbYdGhU8eAoI4QpNlKj0
HS256 podpisuje za pomocą HMAC-SHA-256, więc RFC 7518 §3.2 wymaga klucza o długości co najmniej 32 bajtów (256 bitów). Generator pobiera 32 kryptograficznie bezpieczne losowe bajty z crypto.getRandomValues i koduje je jako base64url — bezpieczny dla adresów URL alfabet bez dopełnienia, którego sam JWT używa. 32 bajty stają się 43-znakowym ciągiem base64url. Wstaw tę wartość prosto do JWT_SECRET. Każde kliknięcie generuje na nowo świeży sekret; nic nigdy nie jest takie samo dwa razy.
Wygeneruj sekret HS512 (64 bajty / 512 bitów)
Algorytm: HS512 · Format: base64url
k2Lp9XqA0mNbVcZ7rT4wYsHfGjUe8RoIdPlNkBvM3xQ1aWtCyZuS6FhEgJ (86 chars)
HS512 używa HMAC-SHA-512, którego wynik haszowania ma 64 bajty, więc RFC 7518 §3.2 nakazuje klucz o długości co najmniej 64 bajtów (512 bitów). Narzędzie wyczuwa algorytm i automatycznie podnosi liczbę bajtów — nigdy nie musisz pamiętać minimum. 64 losowe bajty kodują się do 86-znakowego ciągu base64url, 88 znaków w standardowym base64 lub 128 znaków hex. Wybranie tutaj dłuższego algorytmu to sposób na jedno kliknięcie, by zapewnić sekret o wyższej entropii.
Skopiuj sekret jako wiersz .env
Kliknij „Kopiuj do .env”
JWT_SECRET=3sJ9aFq2kP7mWcZ1xL0nVtRbYdGhU8eAoI4QpNlKj0
Kopiuj do .env opakowuje wygenerowaną wartość w konwencjonalne przypisanie JWT_SECRET=…, więc możesz wkleić ją bezpośrednio do pliku .env, sekretu Dockera lub zmiennej CI bez ręcznego wpisywania nazwy klucza. Wartość pozostaje w jednym wierszu bez otaczających cudzysłowów — dokładnie tak, jak oczekują tego loadery w stylu dotenv. Potrzebujesz zmiennej osadzonej w szerszej konfiguracji? Połącz to z konwerterem JSON na .env podlinkowanym poniżej.
Odtwórz sekret z CLI (równoważna siła)
Pokaż polecenie CLI
openssl rand -base64 32
Panel CLI wypisuje polecenia openssl, Node i Python, które pobierają tę samą liczbę bezpiecznych losowych bajtów dla wybranego algorytmu — openssl rand -base64 32 dla HS256, …48 dla HS384, …64 dla HS512. Wynik to sekret o równej sile, a nie ciąg identyczny co do bajtu: openssl emituje standardowy base64 z dopełnieniem, podczas gdy to narzędzie domyślnie używa base64url, więc alfabety i końcowe znaki się różnią. Użyj tego, co pasuje do Twojego skryptu provisioningu; entropia jest taka sama.
Pokaż i ukryj sekret
Przełącz ikonę oka
••••••••••••••••••••••••••••••••••••••••••• ↔ 3sJ9aFq2kP7m…
Sekret jest domyślnie zamaskowany, więc nie można go podejrzeć przez ramię ani przechwycić przez nagranie ekranu podczas pokazu czy udostępniania ekranu. Kliknij ikonę oka, aby go odsłonić, gdy będziesz gotów do skopiowania, i ukryj go ponownie później. Kopiuj oraz Kopiuj do .env działają niezależnie od tego, czy wartość jest pokazana, czy zamaskowana — na schowku zawsze ląduje prawdziwy sekret, nigdy kropki.
Jak korzystać z generatora sekretu JWT
- 1
Wybierz algorytm podpisujący
Wybierz HS256, HS384 lub HS512. Generator natychmiast stosuje minimalną długość klucza z RFC 7518 §3.2 dla tego wariantu HMAC — 32, 48 lub 64 bajty — więc nigdy nie musisz sprawdzać tej liczby ani ryzykować zbyt małego klucza.
- 2
Wybierz format wyjściowy
base64url jest domyślny — natywne, bezpieczne dla adresów URL kodowanie JWT bez dopełnienia. Przełącz na standardowy base64, jeśli loader tego oczekuje, lub hex, gdy system akceptuje tylko znaki 0–f. Wszystkie trzy kodują te same losowe bajty o identycznej entropii.
- 3
Odsłoń i skopiuj sekret
Sekret jest domyślnie zamaskowany, aby pozostawał poza ekranem podczas pokazu czy udostępniania ekranu. Kliknij ikonę oka, aby go odsłonić, a następnie Kopiuj, aby pobrać surową wartość, lub Kopiuj do .env, aby skopiować wiersz JWT_SECRET=… gotowy do pliku .env lub zmiennej CI.
- 4
Generuj ponownie w razie potrzeby
Kliknij Generuj ponownie po świeży, niezależny sekret pobrany z crypto.getRandomValues. Generuj po jednym na środowisko — nigdy nie używaj ponownie tego samego klucza podpisującego w deweloperce, środowisku przejściowym i produkcji.
- 5
Użyj odpowiednika CLI lub przejdź do podpisywania
Panel CLI pokazuje pasujące jednowierszowce openssl, Node i Python do skryptowego provisioningu. Z sekretem w ręku podpisz token koderem JWT i potwierdź podpis dekoderem JWT.
Częste błędy z sekretem JWT
Użyto hasła lub krótkiej frazy jako sekretu
Ciąg wybrany przez człowieka ma zbyt mało entropii jak na klucz podpisujący i można go odzyskać offline atakiem słownikowym lub siłowym, po czym dowolny token da się sfałszować. Zamiast tego wygeneruj pełnoentropijny losowy sekret.
JWT_SECRET=mySuperSecret123 → low entropy, brute-forceable
JWT_SECRET=3sJ9aFq2kP7mWcZ1xL0nVtRbYdGhU8eAoI4QpNlKj0 → 32 random bytes
Klucz krótszy, niż wymaga algorytm
RFC 7518 §3.2 nakazuje klucz HMAC co najmniej tak długi jak wynik haszowania. 16-bajtowy klucz dla HS256 jest poniżej granicy 32 bajtów — osłabia podpis, a niektóre biblioteki odrzucają go wprost.
16-byte key with HS256 → below the 32-byte minimum
32-byte key with HS256 → meets RFC 7518 §3.2
Wygenerowano klucz za pomocą Math.random
Math.random nie jest kryptograficznie bezpieczny — jego wynik jest przewidywalny, więc sekret na nim zbudowany jest odgadywalny, a tokeny nim podpisane fałszowalne. Klucz podpisujący musi pochodzić z CSPRNG, takiego jak crypto.getRandomValues.
Math.random()-based key → predictable, unsafe
crypto.getRandomValues key → full entropy
Ponownie zakodowano sekret przed podpisaniem
Przechowuj i podawaj dokładnie ten ciąg, który wytworzyło narzędzie. Dekodowanie go z base64 do bajtów w jednej usłudze, a traktowanie jako dosłownego ciągu w innej daje obu stronom różne klucze i każde sprawdzenie podpisu zawodzi.
Service A: raw string · Service B: base64-decoded → signatures never match
Both services use the identical stored string → signatures verify
Użyto tego samego sekretu we wszystkich środowiskach
Jeden JWT_SECRET współdzielony przez deweloperkę, środowisko przejściowe i produkcję oznacza, że wyciek gdziekolwiek fałszuje tokeny wszędzie, a rotacja staje się wszystko-albo-nic. Zapewnij odrębny sekret na środowisko.
Same JWT_SECRET in dev, staging, prod → one leak breaks all
A unique secret per environment → blast radius contained
Zaufano polu alg tokenu podczas weryfikacji
Pozwolenie weryfikatorowi akceptować dowolny algorytm deklarowany przez token umożliwia fałszerstwa alg:none oraz pomieszania HS/RS. Przekazuj jawną białą listę algorytmów niezależnie od tego, jak mocny jest sekret.
jwt.verify(token, secret) → accepts the token's alg
jwt.verify(token, secret, { algorithms: ['HS256'] }) → pinned Kto korzysta z tego narzędzia
- Zapewnij JWT_SECRET dla nowej usługi
- Stawiasz API, które wydaje tokeny podpisane HMAC? Wybierz algorytm, którego używa Twoja biblioteka, skopiuj sekret jako wiersz JWT_SECRET=… i wstaw go do środowiska usługi. Wygeneruj odrębny klucz dla deweloperki, środowiska przejściowego i produkcji — nigdy nie współdziel jednego sekretu między środowiskami.
- Rotuj skompromitowany lub starzejący się sekret
- Gdy podejrzewasz wyciek klucza lub po prostu nadszedł czas na rotację, wygeneruj tutaj świeży sekret, przypisz mu nowy kid i wdróż go z oknem nakładania się, aby aktywne tokeny weryfikowały się aż do wygaśnięcia. Przy potwierdzonej kompromitacji rotuj natychmiast i usuń stary klucz z zestawu akceptowanych.
- Zastąp słaby lub ręcznie wpisany klucz
- Odziedziczyłeś kod, którego JWT_SECRET to krótka fraza lub skopiowana wartość przykładowa? Taki klucz da się złamać siłą offline. Wygeneruj pełnoentropijny 32-bajtowy zamiennik, podmień go za oknem rotacji i zamknij lukę fałszowania tokenów, zanim zostanie wykorzystana.
- Skryptuj generowanie kluczy w pipeline
- Potrzebujesz klucza tworzonego w CI lub Dockerfile, a nie ręcznie? Użyj jednowierszowca openssl, Node lub Python z panelu CLI, aby wybić sekret o równej sile wewnątrz skryptu provisioningu, a tej strony użyj, aby zrozumieć długości bajtów i kodowania wytwarzane przez każde polecenie.
- Bezpiecznie ucz podpisywania JWT
- Przeprowadź zespół przez to, jak działa HS256, nigdy nie odsłaniając prawdziwego klucza produkcyjnego — wygeneruj na ekranie jednorazowy sekret (zamaskowany, dopóki go nie odsłonisz), podpisz przykładowy token koderem JWT i zweryfikuj go dekoderem JWT, tak aby cała pętla podpisywania i weryfikacji była widoczna.
- Porównaj rozmiary kluczy HS256, HS384 i HS512
- Decydujesz, który wariant HMAC ujednolicić? Przełączaj się między algorytmami, aby zobaczyć, jak rośnie wymagana długość klucza i zakodowany ciąg — 43, 64 i 86 znaków base64url — i wybierz kompromis między siłą a rozmiarem tokenu, który pasuje do Twojego systemu, zanim zapiszesz go w konfiguracji.
- Generuj klucze do lokalnej deweloperki
- Potrzebujesz szybkiego, prawidłowego sekretu, aby uruchomić lokalny przepływ uwierzytelniania? Wygeneruj jeden jednym kliknięciem, skopiuj go do .env i jesteś odblokowany — z prawdziwym kluczem z CSPRNG, a nie z zaślepką, którą zapomnisz wymienić przed wdrożeniem.
Jak działa generator
- crypto.getRandomValues (CSPRNG)
- Sekrety są generowane przez wypełnienie Uint8Array za pomocą crypto.getRandomValues, kryptograficznie bezpiecznego generatora liczb pseudolosowych Web Crypto. To to samo źródło entropii, które stoi za generowaniem kluczy Web Crypto. Math.random nie jest używany nigdzie — jest statystycznie przewidywalny i nieprzydatny do żadnego klucza kryptograficznego.
- Dobór rozmiaru klucza wg RFC 7518 §3.2
- Liczba bajtów na algorytm wynika z wymogu JSON Web Algorithms, by klucz HMAC był co najmniej tak duży jak wynik haszowania: 32 bajty dla HS256 (SHA-256), 48 dla HS384 (SHA-384), 64 dla HS512 (SHA-512). Wybór algorytmu ustawia minimum; generator nie wyemituje klucza poniżej dolnej granicy specyfikacji.
- Kodowania RFC 4648 (base64url / base64 / hex)
- Surowe bajty są kodowane alfabetami RFC 4648. base64url używa bezpiecznego dla adresów URL alfabetu bez dopełnienia (32 bajty → 43 znaki), standardowy base64 używa +, / i dopełnienia = (→ 44 znaki), a hex zapisuje dwa znaki na bajt (→ 64 znaki). Zmiana formatu ponownie koduje te same bajty — podstawowa entropia pozostaje niezmieniona.
- Dlaczego base64url jest domyślny
- Komponenty JWT same są kodowane w base64url, a bezpieczny dla adresów URL alfabet bez dopełnienia oznacza, że sekret w base64url nigdy nie wymaga escapowania w nagłówku, adresie URL ani pliku konfiguracji. Znaki + i / oraz końcowe = standardowego base64 mogą się w tych kontekstach łamać, więc base64url jest zachowawczym domyślnym wyborem dla JWT_SECRET.
- Formatowanie Kopiuj do .env
- Kopiuj do .env emituje JWT_SECRET=
w jednym wierszu bez otaczających cudzysłowów — w postaci, którą loadery w stylu dotenv parsują bez modyfikacji. Surowy sekret nigdy nie zawiera znaków wymagających cudzysłowów w pliku .env, więc wiersz można bezpiecznie wkleić w niezmienionej postaci. - Polecenia CLI o równej sile, nie identyczne co do bajtu
- Polecenia openssl rand -base64 N, Node randomBytes(N).toString('base64url') i Python secrets.token_urlsafe(N) z panelu CLI pobierają N bezpiecznych losowych bajtów dla wybranego algorytmu. Wytwarzają klucze o równej sile, a nie ten sam ciąg — openssl emituje standardowy base64 z dopełnieniem, więc alfabet i końcowe znaki różnią się od domyślnego base64url tego narzędzia.
Dobre praktyki dla sekretu JWT
- Dopasuj długość klucza do algorytmu
- Używaj co najmniej 32 bajtów dla HS256, 48 dla HS384 i 64 dla HS512, jak wymaga RFC 7518 §3.2. Ten generator robi to za Ciebie, ale jeśli dobierasz rozmiar klucza ręcznie, nigdy nie schodź poniżej długości wyniku haszowania — zbyt mały klucz HMAC zarówno osłabia podpis, jak i może zostać odrzucony przez restrykcyjne biblioteki.
- Zawsze generuj za pomocą CSPRNG, nigdy hasłem
- Sekret JWT to dane uwierzytelniające maszyny, których nikt nie musi zapamiętywać, więc poświęć pełną entropię: użyj kryptograficznie bezpiecznego losowego klucza, a nie frazy hasłowej, słowa ze słownika ani ręcznie wpisanego ciągu. Sekrety wybierane przez człowieka są najłatwiejszym celem ataków siłowych offline, które automatyzują narzędzia do łamania JWT.
- Używaj unikalnego sekretu na środowisko
- Deweloperka, środowisko przejściowe i produkcja powinny mieć własny JWT_SECRET. Współdzielenie jednego klucza oznacza, że wyciek w niskoryzykownym środowisku fałszuje tokeny wszędzie, a rotacja staje się wszystko-albo-nic. Wygeneruj tu osobny sekret dla każdego środowiska i przechowuj każdy w jego własnym zakresie menedżera sekretów.
- Przypnij algorytm podczas weryfikacji
- Po stronie weryfikującej zawsze przekazuj jawną białą listę algorytmów — algorithms: ['HS256'] w jsonwebtoken, algorithms=["HS256"] w PyJWT — i nigdy nie ufaj polu alg w tokenie. Akceptowanie samodeklarowanego algorytmu tokenu umożliwia klasyczne ataki alg-confusion i alg:none, niezależnie od tego, jak mocny jest Twój sekret.
- Rotuj z nagłówkiem kid i nakładającymi się kluczami
- Oznacz podpisane tokeny identyfikatorem klucza (kid) i publikuj aktywne klucze przez endpoint JWKS, abyś mógł rotować bez przestoju: podpisuj nowe tokeny nowym kluczem, jednocześnie akceptując stary, dopóki jego tokeny nie wygasną. Przy podejrzeniu kompromitacji pomiń nakładanie i unieważnij stary klucz natychmiast.
Najczęstsze pytania
Czy mój wygenerowany sekret JWT jest wysyłany na wasz serwer?
Jak wygenerować bezpieczny sekret JWT?
Jak długi powinien być sekret JWT dla HS256?
Jaka jest różnica między base64url, base64 a hex i który wybrać?
Czy słaby sekret JWT można złamać?
Czy mogę użyć hasła jako sekretu JWT?
Jak rotować sekret JWT bez psucia aktywnych tokenów?
Czym klucz HMAC (HS*) różni się od klucza RSA lub ECDSA (RS*/ES*)?
Powiązane narzędzia
Zobacz wszystkie narzędzia →Generator i weryfikator skrótów bcrypt
Narzędzia bezpieczeństwa
Generuj i weryfikuj skróty bcrypt haseł online — regulowany koszt, prefiksy $2b$/$2a$/$2y$. W 100% w przeglądarce; Twoje hasło nigdy nie jest wysyłane.
Dekoder JWT
Narzędzia bezpieczeństwa
Dekoduj JWT online darmowym dekoderem JWT. Sprawdź header, payload, signature, claims i wygaśnięcie. W 100% w przeglądarce — token nie opuszcza urządzenia.
Koder i generator JWT
Narzędzia bezpieczeństwa
Darmowy generator i koder JWT online. Zbuduj header i payload, podpisz HS256, RS256 lub ES256 natychmiast. W 100% w przeglądarce — sekret i klucz nie opuszczają urządzenia.
Generator MD5 hash i sum kontrolnych plików
Narzędzia bezpieczeństwa
Generuj hashe MD5, SHA-256, SHA-1 oraz SHA-512 online za darmo. Hashuj tekst lub pliki w przeglądarce, weryfikuj sumy kontrolne i kopiuj wyniki. Bez rejestracji.
Generator haseł — konfigurowalny, silny i bezpieczny
Narzędzia bezpieczeństwa
Wygeneruj silne losowe hasła natychmiast — za darmo, w 100% w przeglądarce. Dostosuj długość i znaki, partia do 50 z analizą entropii.
Generator SHA-1 hash (160-bitowy, przestarzały)
Narzędzia bezpieczeństwa
Generuj hash SHA-1 online — 40-znakowy wynik hex, bez przesyłania. Narzędzie dla odcisków Git, weryfikacji starych certyfikatów i audytów migracji. Dane nie opuszczają urządzenia.