HMAC com SHA-256. Chave simétrica compartilhada. Recomendado para uso geral.
Como funciona
Um JSON Web Token (JWT) é um token compacto e assinado que transporta informações (claims) entre duas partes. Compõe-se de três partes separadas por pontos —header, payload e assinatura—, cada uma codificada em Base64URL.
No modo Gerar, você define o header e o payload em JSON e assina com uma chave secreta (HMAC) ou uma chave privada (RSA/ECDSA). No modo Ler, você cola um token existente para inspecionar seu conteúdo e verificar a assinatura.
O payload não é cifrado: qualquer um pode lê-lo decodificando o Base64URL. A assinatura só garante que o token não foi alterado, não o oculta. Nunca coloque dados sensíveis em um JWT.
Exemplos
header{"alg":"HS256","typ":"JWT"} → eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9payload{"sub":"1234567890","name":"John Doe","iat":1516239022} → eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQtokeneyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5cA assinatura (terceira parte) depende do algoritmo e da chave; este exemplo usa HS256 com a chave "your-256-bit-secret".Casos de uso
- Autenticar usuários em APIs: o servidor emite um token assinado e o valida em cada requisição sem guardar sessão.
- Inspecionar e depurar tokens de autenticação para ver seus claims (sub, exp, roles) e datas.
- Verificar a assinatura de um token com a chave secreta ou a chave pública para confirmar que não foi manipulado.
- Gerar tokens de teste com diferentes algoritmos (HMAC, RSA, ECDSA) ao desenvolver um fluxo de autenticação.
Perguntas frequentes
O conteúdo de um JWT é cifrado?
Não. O header e o payload estão apenas codificados em Base64URL, que qualquer um pode decodificar. A assinatura garante integridade (que não foi alterado), não confidencialidade.
Qual é a diferença entre HS256 e RS256?
O HS256 usa uma única chave secreta compartilhada para assinar e verificar (HMAC). O RS256 é assimétrico: assina-se com uma chave privada e verifica-se com a pública, ideal quando muitos serviços precisam validar sem poder emitir.
O que significam os claims iat, exp e nbf?
São marcas de tempo padrão: iat (emitido em), exp (expira em) e nbf (não válido antes de). São expressas em segundos desde 1970 (epoch Unix).
Por que o algoritmo "none" é desaconselhado?
Porque produz um token sem assinatura: qualquer um pode modificar o payload e ele continuará sendo aceito. Só serve para testes, nunca em produção.
Meu token é enviado a um servidor?
Não. A geração, a decodificação e a verificação ocorrem inteiramente no seu navegador; o token e as chaves nunca saem do seu dispositivo.