Генератор JWT
Создайте и подпишите JWT-токен непосредственно в браузере: введите требования к содержанию токена (стандартные sub, aud, exp и т.д., а также любые пользовательские значения), выберите алгоритм, HS256 с общим секретом или RS256/ES256 с частным ключом, и инструмент автоматически генерирует трёхкомпонентный токен. Это особенно полезно для локальной разработки, тестирования нагрузки и воспроизведения проблем с аутентификацией.
Как создать JWT
-
1
Напишите полезный контент.
Стандартные запросы (`sub`, `iss`, `aud`, `exp`, `iat`, `nbf`) плюс любые пользовательские запросы, которые ожидает ваше приложение.
-
2
Выберите алгоритм
HS256/384/512 с общим секретом или RS256/ES256 с частным ключом в формате PEM.
-
3
Укажите ключ
Введите общедоступный секретный текст для HMAC или вставьте частный ключ для RSA/ECDSA, оба значения сохраняются в вашем браузере.
-
4
Генерировать
Результат, это подписанный токен. Копируйте его, используйте в тестах и декодируйте с помощью JWT-декодера для проверки.
Типичный набор данных для токена аутентифицированного пользователя
{
"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"
}
Выбор алгоритма: HMAC против асимметричных алгоритмов
| Алгоритм | Тип ключа | Применяется при |
|---|---|---|
| HS256 | 256-битный общедоступный секрет | Монолит, способный сам подписываться и проверять свою подлинность |
| HS384/512 | Более длинный секретный код | Тот же, что и у HS256, но более надёжный |
| RS256 | RSA 2048+ | Подпись эмитента; многие сервисы используют публичный ключ для проверки |
| ES256 | ECDSA P-256 | Тот же алгоритм, что и RS256, но с более мелкими подписями |
| EdDSA | Ed25519 | Самая быстрая асимметричная проверка с минимальными ключами |
Надёжность ключа
- Секреты HMAC должны обладать энтропией не меньше размера выходного значения алгоритма. Для HS256 нужно 256 случайных битов (32 байта); меньшее значение поддаётся подбору методом полного перебора.
- Ключи RSA должны быть не короче 2048 битов; 3072 или 4096 битов для долгоживущих токенов.
- ECDSA (ES256) обеспечивает безопасность, сопоставимую с RSA 3072, при использовании значительно более малых ключей и более быстрой подписи.
Рекомендации по сроку годности
| Тип токена | Типичная продолжительность exp |
|---|---|
| Токен доступа | 5–60 минут |
| Токен обновления | От дней до недель |
| Сброс пароля | 5–15 минут |
| Проверка по электронной почте | 24 часа |
| Служба к службе | 1–5 минут (короткое время) |
Токен с коротким сроком действия и механизмом обновления представляет собой современный подход; токены доступа с длительным сроком действия трудно аннулировать в случае их взлома.
Распространённые ошибки
- Повторное использование тестового секрета в продакшене. Генератор помечает секреты HS256 и итоговый JWT как предназначенные только для тестирования, если секрет выглядит слабым. Доверяйте этому предупреждению.
- Подписание без
exp. JWT без срока действия действителен всегда. Всегда устанавливайтеexp, если только у вас нет веских причин и списка аннулирования. - Использование
algиз заголовка на стороне проверки. Всегда задавайте белый список алгоритмов на стороне проверки; не полагайтесь на то, что запрашивает токен. - Вставка сюда настоящего частного ключа. Этот генератор работает в вашем браузере, однако считайте частные ключи секретами: используйте тестовые ключи, а не производственные.
Часто задаваемые вопросы
Нет. Подписание выполняется в вашем браузере с помощью Web Crypto API: ключи никогда не покидают ваше устройство. Тем не менее производственные ключи следует генерировать и подписывать в контролируемой среде, а не в браузере.
Стандарт HS256 подходит для монолитных систем, в которых процесс подписания и проверки осуществляется одним и тем же сервисом. Стандарты RS256 или ES256 более подходят в случаях, когда эмитент и проверяющий являются разными сторонами: публичные ключи могут быть обменены без раскрытия ключа подписания.
Коротким. Для токенов доступа обычно 5–15 минут. Для бесперебойной работы используйте токен обновления с более длительным сроком действия. Ни в коем случае не выдавайте JWT без поля exp.
Инструмент позволяет генерировать токены с alg: none для намеренного тестирования повреждённых или неподписанных токенов, с заметным предупреждением. Ни в коем случае не принимайте такие токены в производственном коде.
Сопутствующие инструменты
Генератор SSL-сертификатов
Создайте самоподписанный сертификат SSL/TLS и закрытый ключ RSA полностью в браузере. Свои Common Name, SAN и срок действия, экспорт в PEM.
Генератор CSR
Создайте запрос на подпись сертификата в формате PEM и соответствующий закрытый ключ RSA. Укажите общее имя, поля организации и размер ключа (2048, 3072 или 4096 бит).
Кодировщик файлов Base64
Кодируйте любой файл (PDF, ZIP, изображение, исполняемый файл) в текст Base64 для встраивания в JSON, письма, YAML или data URI. Работает локально в браузере, без загрузки на сервер.
Кодировщик шифра A1Z26
Кодируйте текст шифром A1Z26 (A=1, B=2, ... Z=26) или декодируйте числовую последовательность обратно в буквы, выбрав разделитель.
Кодировщик и декодировщик Base58
Кодируйте текст UTF-8 или шестнадцатеричные байты и безопасно декодируйте Base58 с алфавитом Bitcoin, Ripple или Flickr.
Проверка контрольной суммы
Вычислите контрольную сумму (MD5, SHA-1, SHA-256, SHA-384, SHA-512 или CRC32) любого текста и сверьте её с ожидаемым значением, чтобы получить однозначный ответ о совпадении или расхождении.
Инструмент доступен на других языках
- JWT-generator [SV]
- Générateur de JWT [FR]
- JWT-generator [NL]
- ตัวสร้าง JWT [TH]
- Bộ tạo JWT [VI]
- مولد JWT [AR]
- Generator JWT [ID]
- Generador de JWT [ES]
- JWTジェネレーター [JA]
- JWT 생성기 [KO]
- JWT-Generator [DE]
- Generator JWT [PL]
- Gerador de JWT [PT]
- JWT Oluşturucu [TR]
- JWT 生成器 [ZH]
- JWT Generator [EN]
- Generatore JWT [IT]