Codificador de JWT (Gerar e Assinar)

Gere um JWT (JSON Web Token) assinado com HMAC (HS256, HS384 ou HS512) a partir do JSON do cabeçalho e do payload, direto no seu navegador. Nada, nem mesmo a chave secreta, é enviado a um servidor.

Algoritmos de assinatura HMAC suportados

Algoritmo Função hash Tamanho da assinatura Descrição
HS256 SHA-256 256 bits (32 bytes) A assinatura HMAC padrão mais usada. É o padrão em muitas implementações, incluindo tokens de ID do OAuth 2.0 e OpenID Connect.
HS384 SHA-384 384 bits (48 bytes) Uma opção intermediária para quando se deseja uma assinatura mais longa que a HS256, aumentando a margem de segurança.
HS512 SHA-512 512 bits (64 bytes) Tem o maior comprimento de assinatura e costuma ser combinada com uma chave secreta aleatória suficientemente longa.

Criar e assinar um JWT

Esta ferramenta monta um JWT na hora a partir do JSON do cabeçalho e da carga útil, assinando-o com HMAC por meio de HS256, HS384 ou HS512. Tudo o que você inserir, a chave secreta inclusive, é tratado unicamente dentro do navegador e jamais é enviado a um servidor.

**O que mais se entende mal aqui é que a assinatura existe para detectar adulterações e não é um cifrado.** O cabeçalho e a carga útil de um JWT estão apenas codificados em Base64URL, de modo que **qualquer um que tenha o token consegue ler seu conteúdo sem mais.** Por isso senhas e dados pessoais não têm lugar numa carga útil. O outro ponto diz respeito à natureza da chave: a família HS funciona **fazendo que quem assina e quem verifica compartilhem o mesmo segredo.** Se a verificação for delegada a outro lugar, você vai querer um esquema de chave pública como RS256 ou ES256, que lhe poupa ter de entregar o segredo.

Como criar um

  1. Insira o JSON do cabeçalho Toma a forma `{"alg":"HS256","typ":"JWT"}`. Mantenha-o coerente com o algoritmo que escolher.
  2. Insira o JSON da carga útil Escreva as reivindicações de que precisar, como `sub`, `iat` e `exp`. **Deixe de fora tudo o que deva permanecer secreto.**
  3. Escolha o algoritmo de assinatura Dispõe de HS256, HS384 e HS512; o número indica o comprimento em bits do resumo.
  4. Forneça o segredo e recolha o token O resultado é uma cadeia de três partes unidas por pontos.

Dicas para aproveitar melhor

  • O JWT é assinado inteiramente pela Web Crypto API do seu navegador — o cabeçalho, o payload e a chave secreta nunca são enviados ao servidor do toolbase.cc.
  • Alternar o algoritmo de assinatura (HS256/HS384/HS512) atualiza automaticamente o campo alg do cabeçalho JSON. Edite o cabeçalho diretamente se quiser adicionar outras claims, como kid.
  • Esta ferramenta suporta apenas algoritmos HMAC (chave simétrica). Se precisar de um algoritmo de chave pública como RS256 ou ES256, use uma biblioteca do lado do servidor, como um pacote JWT do Node.js.
  • Depois de editar o cabeçalho ou o payload, lembre-se de clicar novamente em "Gerar JWT" — caso contrário, o token exibido continuará assinado com a entrada anterior.
  • Para conferir o conteúdo de um JWT recém-gerado, cole-o na ferramenta complementar Decodificador de JWT e verifique o cabeçalho e o payload.

Quando é útil

Ao testar o comportamento de uma API

**Poder cunhar um token com as reivindicações que bem entender agiliza percorrer os ramos de uma regra de autorização.**

Ao conferir como a expiração é tratada

Crie um token cujo `exp` fique no passado e confirme que um token expirado é recusado como convém.

Ao preparar tokens para testes

Você pode produzir um token de conteúdo fixo que sirva de material num teste automatizado.

Ao aprender a estrutura de um JWT

Gerar repetidamente variando a entrada permite ver em que parte do token cada peça acaba.

Termos de JWT

Cabeçalho
A primeira parte, que declara o algoritmo e o tipo. Leva `alg` e `typ`.
Carga útil
A segunda parte, que abriga as reivindicações. **Está apenas codificada em Base64URL e não está cifrada de modo algum.**
Assinatura
A terceira parte, calculada a partir do cabeçalho e da carga útil com uma chave. **Serve para detectar adulterações e nada faz para ocultar o conteúdo.**
Reivindicação
Cada entrada dentro da carga útil. Entre as padrão figuram `sub` para o sujeito, `iat` para a hora de emissão e `exp` para a expiração.
HMAC
Um esquema de autenticação de mensagens com chave compartilhada. **Tanto quem assina quanto quem verifica precisam ter o mesmo segredo.**
Base64URL
Base64 com os símbolos trocados para poder viajar numa URL: `+` e `/` passam a `-` e `_`, e o preenchimento final é suprimido.

Perguntas frequentes

Não, não recomendamos. Embora a assinatura em si ocorra de forma segura dentro do navegador, informar uma chave secreta de produção em uma ferramenta de navegador não é uma boa prática do ponto de vista de segurança. Esta ferramenta é destinada a verificar o comportamento de uma API durante o desenvolvimento ou para fins de aprendizado.

HS256 é um algoritmo de chave simétrica em que remetente e destinatário compartilham a mesma chave secreta, enquanto RS256 é um algoritmo de chave pública (assimétrica) em que uma chave privada assina e uma chave pública verifica. Esta ferramenta suporta apenas a família HMAC — HS256, HS384 e HS512 — e não suporta algoritmos de chave pública como RS256 ou ES256.

Sim, você pode editar o cabeçalho JSON diretamente. Porém, se o algoritmo selecionado (o que é realmente usado para calcular a assinatura) não corresponder ao valor do campo alg, outra implementação que verifique o token pode rejeitá-lo com um erro — portanto, garanta que ambos sempre coincidam.

Você pode colar a string JWT gerada na ferramenta complementar "Decodificador de JWT" para verificar instantaneamente o conteúdo do cabeçalho e do payload. Ainda assim, a validade real da assinatura só pode ser confirmada de forma definitiva pela lógica de verificação do servidor que possui a mesma chave secreta.
Tool-kun

Curiosidade — Por que assinar um JWT pode ser feito inteiramente no navegador

Os algoritmos de assinatura de JWT se dividem em duas grandes famílias: algoritmos de "chave simétrica" (HMAC, ou seja, HS256/HS384/HS512), em que remetente e destinatário compartilham a mesma chave secreta, e algoritmos de "chave pública" (como RS256 e ES256), em que uma chave privada assina e uma chave pública verifica. Como os primeiros podem ser calculados inteiramente com o crypto.subtle.sign() da Web Crypto API (SubtleCrypto) padronizada pelo W3C, sem exigir nenhuma biblioteca externa, esta ferramenta se limita deliberadamente aos algoritmos HMAC.

A segurança de uma assinatura HMAC depende inteiramente de quão difícil é adivinhar a chave secreta, e não do conteúdo do cabeçalho ou do payload. A RFC 7518 (JSON Web Algorithms) recomenda um comprimento de chave de pelo menos 256 bits (32 bytes) para HS256; usar uma palavra curta ou uma string de dicionário como chave secreta traz o risco de a assinatura ser forjada por força bruta. Em ambientes de produção reais, deve-se usar uma string aleatória suficientemente longa gerada por um gerador de números aleatórios.

Esta ferramenta é um utilitário para desenvolvedores, pensado para verificar o comportamento de uma API durante o desenvolvimento ou testar a lógica de verificação de assinatura de webhooks. A chave secreta que você informa é tratada apenas na memória do seu navegador e nunca é transmitida externamente, mas o risco de um dispositivo compartilhado ou uma extensão do navegador coletar a área de transferência ou os dados digitados não é nulo. Recomendamos fortemente nunca informar, nem mesmo apenas para testar, uma chave que você realmente usa em produção em uma ferramenta como esta.