Как работает инструмент
Создайте подписанный 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)