Ferramenta do navegador

Encoder e assinador JWT

Crie um JWT assinado a partir de JSON com HMAC, RSA, RSA-PSS ou ECDSA.

Processamento local · Sem upload · Sem conta

HS usa segredo; RS, PS e ES exigem chave privada PEM PKCS#8.

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.

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)

Padrões e referências oficiais