JWT Generator

One input per line. Output is numbered to match the input order.
Pinned tools are listed in your favourites on the home page.Copies a link to this tool that carries your current input, so it opens ready to run.Gives you an iframe snippet for putting this tool on your own site.

Signing uses the browser's WebCrypto HMAC implementation (crypto.subtle.sign). The secret is typed into this page and used here — it is never sent to a server, never logged, and never stored. Only HMAC algorithms are offered: RS/ES signing would require pasting a private key into a web page.

Ctrl+Enter Run  · Ctrl+Shift+C Copy  · Esc Clear

Understand JWT Generator

Monta um JSON Web Token a partir de um cabeçalho e de um payload que você fornece e o assina com HMAC-SHA-256, 384 ou 512 usando o seu segredo, inteiramente no seu navegador.

How it works

O JSON do cabeçalho e o do payload são codificados em Base64URL e unidos por um ponto, e essa string é a entrada de assinatura. O WebCrypto calcula um HMAC sobre ela com o seu segredo, e o resultado é codificado em Base64URL e acrescentado como terceiro segmento. A verificação é a operação idêntica: um servidor recalcula o HMAC sobre os dois primeiros segmentos e compara. Como o HMAC é simétrico, quem consegue verificar um token também consegue emitir um.

When to use it

  • Produzir um token de teste com claims específicas para exercitar um caminho de autorização.
  • Reproduzir um token emitido por um provedor de identidade, para isolar se o bug está na emissão ou na verificação.
  • Conferir se o seu código de verificação de fato rejeita um exp expirado, um aud errado ou um nbf no futuro.
  • Criar um token de fixture para um teste de integração em que o segredo de assinatura é um valor de teste conhecido.
  • Ver exatamente quais bytes são assinados, quando uma implementação de assinatura feita à mão discorda de uma biblioteca.

Watch out for

  • Um token só é tão confiável quanto o segredo dele. Não cole um segredo de assinatura de produção em nenhuma página web — considere queimado um segredo que passou por um navegador, e rotacione-o.
  • A segurança do HS256 é limitada pela chave, não pelo algoritmo. Um segredo curto ou de dicionário é quebrado offline a partir de um único token capturado, porque o próprio token dá ao atacante tudo o que ele precisa para testar palpites. Use pelo menos 32 bytes aleatórios.
  • exp, iat e nbf são segundos desde a época. Um valor em milissegundos no exp produz um token que na prática nunca expira, e verificadores conformes vão aceitá-lo sem reclamar.
  • Assinar não é criptografar. Toda claim do payload é legível por qualquer um que tenha o token; um JWT assinado protege as claims de modificação, nunca de leitura.

Not the right tool for: Emitir tokens que o seu sistema de produção vai aceitar. Assine esses dentro do seu serviço e prefira um algoritmo assimétrico como RS256 ou EdDSA, para que quem verifica tenha apenas uma chave pública e não consiga forjar tokens próprios.

Frequently Asked Questions

Como gerar um token JWT?

Escolha um algoritmo, edite o JSON do payload, acrescente claims como iss, sub, aud e uma expiração, informe seu segredo de assinatura e clique em Assinar JWT. O cabeçalho, o payload e a assinatura HMAC são codificados em base64url sem preenchimento e unidos por pontos.

É seguro digitar meu segredo de JWT aqui?

O segredo é usado por crypto.subtle.sign dentro da aba do seu navegador. Ele nunca é enviado a um servidor, nunca é registrado em log e nunca é armazenado. Ainda assim, trate um segredo de assinatura de produção com cuidado — para testar, gere um segredo descartável em vez de colar o que está em uso.

Por que RS256 e ES256 não são oferecidos?

Esses algoritmos assinam com uma chave privada, e colar uma chave privada de produção em qualquer página web é um hábito ruim que não vale a pena ensinar. Aqui só há algoritmos HMAC. O valor de alg "none" também está ausente — ele é o clássico ataque de bypass de JWT, não um recurso.

How to Use JWT Generator

  1. Paste or type your input in the input area above.
  2. The tool processes your input automatically or click Run.
  3. Copy or download the result using the action buttons.
  4. Use Ctrl+Enter to run quickly from the keyboard.