Guia do Gerador JWT: Criando Tokens Assinados HS256/RS256
O Que É JWT
JSON Web Token (JWT) é um formato de token compacto e autônomo amplamente utilizado para autenticação e troca de informações:
eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNzAwMDAwMDAwLCJleHAiOjE3MDAwMDgwMDB9.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
↑ Header ↑ Payload ↑ Signature
Um JWT consiste em três strings codificadas em Base64URL separadas por
..
Estrutura de Três Partes Explicada
Header
{
"alg": "HS256",
"typ": "JWT"
}
| Campo | Significado |
|---|---|
alg |
Algoritmo de assinatura: HS256, RS256, etc. |
typ |
Tipo de token, sempre JWT |
Payload
{
"sub": "1234567890",
"name": "John Doe",
"role": "admin",
"iat": 1700000000,
"exp": 1700008000
}
| Campo | Significado | Obrigatório |
|---|---|---|
sub |
Sujeito (ID do usuário) | Recomendado |
iat |
Timestamp de emissão | Recomendado |
exp |
Tempo de expiração | Obrigatório |
iss |
Emissor | Opcional |
aud |
Audiência | Opcional |
nbf |
Not Before (tempo efetivo) | Opcional |
Signature
HMACSHA256(base64UrlEncode(header) + "." + base64UrlEncode(payload), secret)
A assinatura garante que o token não foi alterado, mas o Payload NÃO é criptografado por padrão—nunca coloque dados sensíveis nele!
HS256 vs RS256
| Comparação | HS256 | RS256 |
|---|---|---|
| Tipo de algoritmo | Simétrico (HMAC) | Assimétrico (RSA) |
| Chave | Segredo compartilhado (string) | Chave pública + Chave privada |
| Verificador | Precisa do mesmo segredo | Precisa apenas da chave pública |
| Caso de uso | Serviço único, microsserviços internos | Multi-serviço, verificação de terceiros |
| Gerenciamento de chaves | Simples, mas maior risco de vazamento | Mais seguro, chave pública pode ser compartilhada |
Recomendação: Use HS256 para monolitos, RS256 para microsserviços/APIs abertas.
Usando o Gerador JWT
Passo 1: Abrir a Ferramenta
Visite o Gerador JWT para acessar a interface de criação de tokens.
Passo 2: Selecionar Algoritmo de Assinatura
- Serviço único: Selecione HS256 e insira um segredo compartilhado
- Multi-serviço: Selecione RS256 e cole uma chave privada
Passo 3: Preencher o Payload
Adicione claims no editor de payload:
{
"sub": "user_10086",
"name": "John Doe",
"role": "admin",
"iat": 1700000000,
"exp": 1700008000
}
iateexpusam timestamps Unix (segundos). A ferramenta suporta configuração visual do tempo de expiração.
Passo 4: Gerar o Token
Clique em "Gerar". A ferramenta automaticamente:
- Codifica em Base64URL o Header
- Codifica em Base64URL o Payload
- Calcula a assinatura usando a chave
- Concatena em uma string JWT completa
Passo 5: Verificar o Token
Cole o token gerado no Decodificador JWT e confirme:
- Header e Payload decodificam corretamente
- A verificação de assinatura passa
- O tempo
expnão passou
Melhores Práticas de Tempo de Expiração
| Cenário | exp Recomendado | Razão |
|---|---|---|
| Access Token | 15-30 minutos | Vida curta, reduz risco de vazamento |
| Refresh Token | 7-30 dias | Vida longa, usado para renovação |
| Link de verificação por email | 1-24 horas | Uso único |
| API Key | Sem exp ou 1+ ano | Credencial de longo prazo |
Melhor prática: Use a abordagem de duplo token Access Token + Refresh Token.
Notas sobre Codificação Base64URL
JWT usa codificação Base64URL, que difere do Base64 padrão:
| Diferença | Base64 Padrão | Base64URL |
|---|---|---|
+ |
+ |
- |
/ |
/ |
_ |
Preenchimento = |
Sim | Não |
Ao usar a ferramenta de Codificação/Decodificação Base64, certifique-se de selecionar o modo seguro para URL.
Problemas Comuns
| Problema | Causa | Solução |
|---|---|---|
| Verificação de assinatura falhou | Chave incompatível | Confirme que geração e verificação usam a mesma chave |
| Token expirado | O tempo exp passou | Regenere ou use Refresh Token |
| Payload ilegível | Não decodificado com Base64URL | Use o Decodificador JWT |
| Dados sensíveis expostos | Payload não criptografado | Nunca coloque senhas ou segredos no Payload |
| Verificação RS256 falhou | Chave pública incompatível | Confirme que a chave pública corresponde à chave privada |
Resumo
JWT é uma tecnologia central para autenticação web moderna. Compreender a estrutura de três partes e a diferença entre HS256/RS256, e configurar corretamente os claims e a expiração, são chaves para o uso seguro de JWT. O Gerador JWT e o Decodificador JWT permitem completar o fluxo completo de criação, decodificação e verificação de tokens diretamente no seu navegador.