DevToolPal
UK

Генератор і підпис JWT

Створює та підписує JSON Web Token із JSON-корисного навантаження алгоритмами HS256/384/512 або RS, PS і ES із закритим ключем PEM.

Працює локально, нічого не завантажується на сервер

Параметри

Формат секрету

Корисне навантаження (JSON)

0 симв. · 0 B

JWT

0 симв. · 0 B

Що робить інструмент

JSON Web Token (JWT, RFC 7519) — компактний, безпечний для URL рядок із трьох частин, розділених крапками: заголовка з алгоритмом підпису, корисного навантаження з твердженнями (claims) і підпису перших двох частин. API використовують JWT як bearer-токени, провайдери ідентичності — як ID-токени.

Інструмент створює та підписує токен із JSON-корисного навантаження. Підтримуються:

  • HS256, HS384, HS512: HMAC зі спільним секретом у вигляді тексту чи Base64.
  • RS256, RS384, RS512 і PS256, PS384, PS512: підписи RSA із закритим ключем PEM.
  • ES256, ES384, ES512: підписи ECDSA із закритим ключем EC.

Як користуватися

  1. Запишіть корисне навантаження як JSON-об’єкт або натисніть Приклад.
  2. Виберіть Алгоритм і введіть секрет або вставте закритий ключ PEM у верхній частині поля введення.
  3. За бажанням встановіть iat на поточний час, додайте термін дії (exp) або додаткові поля заголовка, наприклад ID ключа.
  4. Скопіюйте токен із виводу. Вставте його в декодер JWT, щоб переглянути вміст.

Приклад

Із секретом your-256-bit-secret наведене корисне навантаження, підписане HS256, дає відомий приклад токена з jwt.io:

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

Заголовок завжди записується як {"alg":"HS256","typ":"JWT"}, після чого йдуть додані поля; alg завжди відповідає вибраному алгоритму.

Рекомендації

Робіть токени короткоживучими за допомогою exp і задавайте iss та aud, щоб токен для одного сервісу не можна було повторно використати в іншому. На сервері завжди перевіряйте підпис із явним списком дозволених алгоритмів і відхиляйте none. Секрети HMAC мають бути довгими й випадковими, не коротшими за вихід хешу (32 байти для HS256).

Часті запитання

› Який алгоритм вибрати?

Той, який перевіряє ваш сервер. HS256 використовує спільний секрет і поширений у межах однієї системи. RS256 і ES256 підписують закритим ключем, а перевірити може будь-хто відкритим — це зручно для токенів, які перевіряють кілька сервісів. Підписи ES256 значно коротші за RS256.

› Які формати закритих ключів підтримуються?

PEM-ключі у PKCS#8 (BEGIN PRIVATE KEY), PKCS#1 RSA (BEGIN RSA PRIVATE KEY) і SEC1 EC (BEGIN EC PRIVATE KEY). Зашифровані ключі спершу експортуйте без парольної фрази. Для ES256, ES384 і ES512 ключ має бути на кривій P-256, P-384 або P-521 відповідно.

› Чи є корисне навантаження JWT секретним?

Ні. Заголовок і корисне навантаження лише закодовані в Base64URL, і будь-хто з токеном може їх прочитати. Підпис захищає від змін, а не від читання. Ніколи не кладіть паролі чи інші секрети в корисне навантаження JWT.

› Чи зберігається мій секрет або закритий ключ і чи надсилається кудись?

Ні. Підпис виконується у браузері через Web Crypto API. Секрет або ключ зберігаються лише в пам’яті цієї сторінки: вони не зберігаються, не потрапляють в адресний рядок і не додаються до посилань для поширення. Проте не вставляйте робочі ключі на вебсторінки, яких ви не контролюєте.