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.

Dicas

  • 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.

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.
ツールくん

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.