Инструмент в браузере

Кодировщик и подпись JWT

Создайте подписанный JWT из JSON с HMAC, RSA, RSA-PSS или ECDSA.

Локально в браузере · Без загрузки · Без аккаунта

HS использует секрет; RS, PS и ES требуют закрытый PEM PKCS#8-ключ.

Не вставляйте рабочие секреты или закрытые ключи в браузерный инструмент. В production используйте поддерживаемую JWT-библиотеку и защищённое серверное хранилище ключей.

Как работает инструмент

Создайте подписанный JWT из JSON с HMAC, RSA, RSA-PSS или ECDSA.

Используйте пример, чтобы увидеть формат ввода и метаданные, затем замените его своим значением.

Конфиденциальность и безопасность

Обработка выполняется в этой вкладке. Большие значения могут потреблять много памяти устройства.

Не вставляйте рабочие секреты или закрытые ключи в браузерный инструмент. В production используйте поддерживаемую JWT-библиотеку и защищённое серверное хранилище ключей.

Частые ошибки и причины

  • Ввод пуст, повреждён или не соответствует ожидаемому формату.
  • Выбранный режим не соответствует алфавиту, типу файла или представлению.
  • Очень большое значение может исчерпать память, пока существуют кодированная и декодированная копии.
  • Успешное преобразование не доказывает безопасность или надёжность содержимого.

Эквивалентные команды

Используйте доступную среду или оболочку. Проверяйте недоверенные данные и не выводите бинарные данные прямо в терминал.

Python

import base64, hashlib, hmac, json
b64 = lambda value: base64.urlsafe_b64encode(value).rstrip(b'=').decode()
body = '.'.join([b64(json.dumps(header, separators=(',', ':')).encode()), b64(json.dumps(payload, separators=(',', ':')).encode())])
token = body + '.' + b64(hmac.new(secret, body.encode(), hashlib.sha256).digest())

JavaScript

import { createHmac } from 'node:crypto';
const b64 = value => Buffer.from(JSON.stringify(value)).toString('base64url');
const body = `${b64(header)}.${b64(payload)}`;
const token = `${body}.${createHmac('sha256', secret).update(body).digest('base64url')}`;

Shell

b64url() { openssl base64 -A | tr '+/' '-_' | tr -d '='; }
body="$(printf '%s' "$HEADER" | b64url).$(printf '%s' "$PAYLOAD" | b64url)"
sig=$(printf '%s' "$body" | openssl dgst -sha256 -mac HMAC -macopt "key:$SECRET" -binary | b64url)

Стандарты и официальные источники