Como esta ferramenta funciona
Crie um JWT assinado a partir de JSON com HMAC, RSA, RSA-PSS ou ECDSA.
Use o exemplo para conferir a entrada e os metadados e depois substitua pelo seu valor.
Privacidade e uso seguro
O processamento permanece nesta aba. Valores grandes ainda podem consumir muita memória do dispositivo.
Não cole segredos ou chaves privadas de produção em um utilitário web. Em produção, use uma biblioteca JWT mantida e armazenamento protegido de chaves no servidor.
Falhas comuns explicadas
- A entrada está vazia, danificada ou não usa o formato esperado.
- O modo escolhido não corresponde ao alfabeto, tipo de arquivo ou representação.
- Um valor muito grande pode esgotar a memória enquanto as cópias codificada e decodificada coexistem.
- Uma conversão bem-sucedida não prova que o conteúdo seja seguro ou confiável.
Comandos equivalentes
Use o runtime ou shell já disponível. Valide entradas não confiáveis e não imprima binários diretamente no terminal.
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)