JWT Generator
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
- Paste or type your input in the input area above.
- The tool processes your input automatically or click Run.
- Copy or download the result using the action buttons.
- Use Ctrl+Enter to run quickly from the keyboard.