JWT Encoder/Decoder — Depure tokens JSON
Codificador, decodificador e auditor de segurança JWT compatível com HS256, RS256, ES256, PS256 e mais. Inspecione claims, verifique assinaturas e detecte vulnerabilidades.
O que é o JWT Encoder/Decoder?
O JWT Encoder/Decoder cria JSON Web Tokens assinados, decodifica tokens existentes para revelar seu conteúdo, e executa auditorias de segurança automatizadas contra os claims e escolhas de algoritmos de um token. JSON Web Tokens são o formato mais comum para autenticação sem estado — um gateway de API, provedor OAuth ou microsserviço gera um token assinado, e os serviços downstream verificam essa assinatura em vez de consultar um armazenamento de sessão centralizado. Quando algo dá errado (um token é rejeitado, um claim tem um valor inesperado, ou você precisa verificar sua lógica de assinatura), você precisa inspecionar o token sem escrever código personalizado. Esta ferramenta suporta codificação com 13 algoritmos de quatro famílias, decodificação com status de expiração em tempo real, verificação de assinatura e um modo de auditoria de segurança que verifica vulnerabilidades comuns. Todas as operações são executadas no lado do cliente — seus tokens e chaves de assinatura nunca saem do navegador.
Recursos principais
- Criar JWTs assinados com HMAC (HS256/384/512) — insira um payload JSON e um segredo compartilhado; a ferramenta assina o token usando a API
SignJWTda bibliotecajose. - Suporte para RSA (RS256/384/512), ECDSA (ES256/384/512) e RSA-PSS (PS256/384/512) — cole uma chave privada codificada em PEM para assinatura assimétrica; a ferramenta importa a chave usando
importPKCS8e assina de acordo. - Tokens não assinados com
alg: none— criar tokens não assinados é suportado, mas claramente sinalizado com um painel de aviso vermelho. - Adicionar claims padrão rapidamente — botões de um clique inserem
iss,sub,aud,exp(+1 hora),exp(+1 dia),iat,nbfejti(um UUID aleatório decrypto.randomUUID()) no editor de payload. - Decodificar cabeçalho e payload JWT — colar qualquer JWT exibe imediatamente o cabeçalho e payload analisados como JSON formatado em painéis lado a lado, com o algoritmo e tipo mostrados abaixo do cabeçalho.
- Verificar status de expiração — um banner de status colorido mostra se o token está expirado ou válido, com uma contagem regressiva em tempo real (ex.: "2h 34min restantes" ou a data e hora de expiração).
- Verificar assinaturas — forneça o segredo (HMAC) ou chave pública PEM (assimétrica) e a ferramenta chama
jwtVerifypara confirmar que a assinatura é criptograficamente válida. - Saída JWT com código de cores — os três segmentos do token são exibidos em vermelho (cabeçalho), roxo (payload) e azul (assinatura) para fácil identificação visual.
- Modo de auditoria de segurança — analisa um token para 10 problemas de segurança distintos, incluindo
alg: none,expausente, tokens expirados,nbfno futuro, expiração muito longa, algoritmos fracos e claimsiss,aud,subausentes. - Modo em lote — decodifica vários tokens JWT de uma vez (um por linha), exibindo o algoritmo e resumo do payload para cada um.
- Processamento 100% no lado do cliente — usa o pacote npm
joseexecutando inteiramente no navegador; nenhum token ou chave é transmitido.
Como usar o JWT Encoder/Decoder
Passo 1: Selecionar um modo
Três botões de modo aparecem no topo da ferramenta: Codificar, Decodificar e Auditoria de Segurança. Um aviso de segurança amarelo abaixo do seletor de modo lembra que chaves de assinatura não devem ser inseridas em ferramentas nas quais você não confia — é uma boa prática ler antes de prosseguir com qualquer material de chave.
Passo 2: Criar um JWT (modo Codificar)
Escolha um algoritmo. Um menu suspenso agrupado apresenta os 13 algoritmos suportados organizados por família: HMAC Simétrico (HS256, HS384, HS512), RSA Assimétrico (RS256, RS384, RS512), ECDSA Assimétrico (ES256, ES384, ES512), RSA-PSS Assimétrico (PS256, PS384, PS512) e Não assinado (none). O padrão é HS256.
Edite o payload. Um editor JSON e pre-preenchido com um payload de exemplo contendo sub, name e iat (definido como o timestamp Unix atual no carregamento da pagina). Edite isso diretamente. Use os botoes de Adicao Rapida de Claims para inserir claims padrao sem digitar timestamps manualmente -- clicar em + exp (+1h) insere um valor exp definido como o timestamp Unix atual mais 3600 segundos.
Insira a chave de assinatura. Para algoritmos HMAC (HS256/384/512), um campo de entrada do tipo senha aceita o segredo compartilhado. Um botão de alternar mostrar/ocultar revela o valor. Para algoritmos assimétricos, uma área de texto multilinha aceita uma chave privada no formato PEM começando com -----BEGIN PRIVATE KEY-----.
Clique em "Codificar JWT". O token assinado aparece em um painel de saída com código de cores. Um botão "Copiar" copia o token completo. Um botão "Decodificar este token" o transfere para a aba Decodificar para inspeção imediata.
Passo 3: Decodificar um JWT (modo Decodificar)
Cole qualquer JWT no campo de entrada do token. A decodificação é imediata — nenhum clique de botão é necessário. A ferramenta divide o token em ., decodifica em Base64URL cada segmento usando uma função personalizada base64UrlDecode, e analisa em JSON o cabeçalho e o payload.
Se o token tiver um claim exp, um banner colorido aparece acima dos painéis decodificados:
- Verde com marca de verificação: "Token Válido — 2h 34min restantes"
- Vermelho com ícone de aviso: "Token Expirado — Expirou em [data/hora]"
O cabeçalho e o payload aparecem em painéis JSON formatados lado a lado, cada um com um botão de copiar. Abaixo deles, um painel de Detalhes de Claims renderiza cada claim do payload em seu próprio cartão. Claims de timestamp (exp, iat, nbf) mostram tanto o inteiro Unix bruto quanto a string de data legível por humanos.
A seção Assinatura e Verificação exibe a string de assinatura bruta e fornece uma entrada de chave para verificação. Insira o segredo ou chave pública e clique em "Verificar Assinatura". O cartão de resultado fica verde para uma assinatura válida ou vermelho para uma inválida.
Passo 4: Executar uma auditoria de segurança (modo Auditoria)
Mude para a aba de Auditoria de Segurança e cole um token. As descobertas aparecem imediatamente conforme o token é analisado. Cada cartão de descoberta mostra um badge de gravidade (CRÍTICO, AVISO, NOTA ou INFO), um título, uma descrição em linguagem simples e uma recomendação específica. A auditoria verifica 10 condições:
alg: noneou ausente — CRÍTICO- Algoritmo fraco
HS1— AVISO - Algoritmo simétrico em uso — NOTA
- Claim
expausente — AVISO - Token já expirado — CRÍTICO
- Expiração a mais de um ano no futuro — NOTA
- Claim
nbfestá no futuro — AVISO - Claim
issausente — INFO - Claim
audausente — INFO - Claim
subausente — INFO
Se nenhum problema for encontrado, um cartão INFO mostra "Nenhum problema importante encontrado — continue validando tokens no lado do servidor e mantenha as chaves de assinatura em segredo."
Exemplos práticos
Gerando um token de teste para uma API
Seu backend espera um JWT assinado com HS256 com claims sub, iss, aud e exp. No modo Codificar, selecione HS256, comece com o payload padrão, depois clique em + iss, + sub, + aud e + exp (+1h) em sequência para construir o payload completo. Insira seu segredo de teste e clique em Codificar. Copie o token resultante para sua ferramenta de teste de API ou cabeçalho HTTP. Quando o teste falhar, cole o token no modo Decodificar para verificar se os claims correspondem às expectativas — o painel de Detalhes de Claims facilita a confirmação de cada valor sem decodificar manualmente em Base64.
Depurando um erro de API "Token Expirado"
Seu aplicativo está recebendo respostas 401 Unauthorized. Cole o token do cabeçalho Authorization do seu aplicativo no modo Decodificar. O banner de expiração informa imediatamente se o token expirou e quando. Se expirou há três minutos, o problema é um token de curta duração sem lógica de atualização, ou uma diferença de relógio entre seu cliente e o emissor do token. Os claims iat e exp no painel de Detalhes de Claims mostram a janela do problema em datas legíveis por humanos.
Auditando tokens antes de uma revisão de segurança
Antes de uma revisão de código ou teste de penetração, cole amostras JWT de produção no modo de Auditoria de Segurança para identificar melhorias fáceis. Um token que retorna com descobertas CRÍTICAS por alg: none ou exp ausente precisa de atenção imediata. Uma NOTA sobre um algoritmo simétrico em uma arquitetura multi-serviço vale a pena discutir durante a revisão. A saída da auditoria pode ser copiada e colada diretamente em um documento de descobertas de segurança.
Dicas e melhores práticas
Use algoritmos assimétricos (RS256, ES256) para APIs públicas. Algoritmos HMAC (HS256) usam um segredo compartilhado: qualquer serviço que possa verificar um token também pode criar um. Com RS256 ou ES256, apenas o detentor da chave privada pode assinar novos tokens, enquanto qualquer serviço pode verificá-los usando a chave pública distribuída. O modo de auditoria de segurança sinaliza algoritmos HS com uma NOTA por este motivo.
Sempre defina um claim exp. Um token sem expiração permanece válido indefinidamente a menos que seja explicitamente revogado. A seção de Adição Rápida de Claims fornece botões de um clique para expirações de 1 hora e 1 dia. Tokens de acesso devem expirar em minutos a algumas horas; use tokens de atualização para sessões mais longas.
Use jti para tokens de uso único. O botão de adição rápida + jti (UUID) insere um identificador de token único gerado por crypto.randomUUID(). No lado do servidor, você pode armazenar e verificar este valor para prevenir ataques de repetição de token em fluxos de redefinição de senha ou confirmação de e-mail.
Não use o algoritmo none em produção. A ferramenta cria tokens não assinados quando alg: none é selecionado, mas exibe um painel de aviso vermelho. O modo de auditoria de segurança avalia alg: none como CRÍTICO. Este algoritmo só deve aparecer em ambientes de teste onde a verificação de tokens está intencionalmente desabilitada.
Problemas comuns e solução de problemas
"Formato JWT inválido. Um JWT deve ter 3 partes separadas por pontos." — a string que você colou não tem exatamente dois caracteres .. Certifique-se de ter copiado o token completo incluindo todos os três segmentos. JWTs com uma nova linha ou espaço no final também falharão — espaços em branco nas extremidades são removidos, mas espaços em branco incorporados causarão esse erro.
"Codificação Base64 inválida" — um dos segmentos do token não é Base64URL válido. Isso pode acontecer se o token foi truncado durante a cópia e colagem, ou se a string é um formato codificado diferente (como um token de referência opaco do OAuth que não é um JWT).
"Segredo necessário" / "Chave privada necessária" — você clicou em Codificar sem preencher o campo da chave de assinatura. Algoritmos HMAC requerem um segredo não vazio; algoritmos assimétricos requerem uma chave privada PEM.
"Payload JSON inválido" — o editor de payload contém JSON malformado. Verifique vírgulas no final, chaves sem aspas ou strings com aspas simples. Os botões de Adição Rápida de Claims sempre produzem JSON válido, então se você editou o payload manualmente, procure erros de sintaxe.
A verificação retorna inválido mesmo com a chave correta — certifique-se de usar o mesmo algoritmo com o qual o token foi assinado (mostrado no campo alg do cabeçalho, que o modo Decodificar exibe automaticamente). Para verificação assimétrica, certifique-se de fornecer a chave pública, não a chave privada.
Token alg: none mostra "Não é possível verificar" na verificação — tokens não assinados não têm assinatura para verificar. A ferramenta retorna um status específico de "não suportado" para este caso e desabilita o botão Verificar quando alg é none.
Privacidade e segurança
O JWT Encoder/Decoder processa todos os tokens e chaves localmente usando a biblioteca jose executando em seu navegador. Nenhum JWT, segredo ou chave privada é transmitido a qualquer servidor. A ferramenta não faz solicitações de rede durante codificação, decodificação ou verificação. O aviso de segurança amarelo exibido na ferramenta é genuíno: trate qualquer ferramenta online como não confiável para chaves de assinatura de produção. Para desenvolvimento e depuração com credenciais que não são de produção, esta ferramenta é segura de usar. Verifique o comportamento por conta própria abrindo o DevTools do navegador e verificando a aba Rede — você não verá solicitações de saída durante nenhuma operação.
Perguntas frequentes
A ferramenta JWT é gratuita? Sim. A ferramenta é completamente gratuita sem conta ou cadastro necessário.
Posso usá-la offline? Sim. Após o carregamento da página, toda codificação, decodificação e auditoria é executada localmente. Nenhuma solicitação de rede é feita para qualquer operação JWT.
Meus tokens e chaves de assinatura estão seguros? A ferramenta não faz solicitações de rede durante a operação. Seus tokens e chaves permanecem na sua aba do navegador. Dito isso, evite inserir chaves privadas de produção em qualquer ferramenta baseada em navegador. Use chaves de teste ou credenciais que não sejam de produção.
Quais algoritmos são suportados? A ferramenta suporta 13 algoritmos: HS256, HS384, HS512 (HMAC), RS256, RS384, RS512 (RSA PKCS#1), ES256, ES384, ES512 (ECDSA), PS256, PS384, PS512 (RSA-PSS) e none (não assinado). A biblioteca jose lida com as operações criptográficas.
Pode verificar uma assinatura sem o segredo original? Não. A verificação de assinatura requer o segredo de assinatura (HMAC) ou a chave pública correspondente (assimétrica). A decodificação — ler o cabeçalho e o payload — não requer nenhuma chave e funciona imediatamente.
Em qual formato a chave privada precisa estar? A assinatura assimétrica requer uma chave privada no formato PEM PKCS#8 (começando com -----BEGIN PRIVATE KEY-----). A função importPKCS8 da biblioteca jose lida com a importação. O formato PKCS#1 (começando com -----BEGIN RSA PRIVATE KEY-----) não é suportado; converta usando openssl pkcs8 -topk8 -nocrypt.
Qual é a diferença entre o modo Decodificar e o modo Auditoria de Segurança? O modo Decodificar mostra o conteúdo do token — cabeçalho, payload, claims e status de expiração — e permite verificar a assinatura. O modo Auditoria de Segurança foca exclusivamente na identificação de fraquezas de segurança no design do token: claims ausentes, algoritmos fracos, tokens expirados e problemas de configuração. Ambos os modos não requerem chave de assinatura.
Por que a auditoria de segurança sinaliza meu token HS256? A auditoria observa (gravidade NOTA, não AVISO ou CRÍTICO) que algoritmos HMAC usam um segredo compartilhado, o que significa que qualquer serviço com o segredo pode tanto verificar quanto criar tokens. Esta é uma consideração arquitetônica para sistemas multi-serviço, não um bug no seu token. A nota recomenda algoritmos assimétricos para sistemas onde apenas um serviço deveria ser capaz de emitir tokens.
Posso decodificar um JWT sem conhecer o algoritmo? Sim. O algoritmo usado para assinar o token é armazenado no campo alg do cabeçalho. A decodificação lê primeiro o cabeçalho, que revela o algoritmo. Você só precisa saber o algoritmo (e ter a chave) se quiser verificar a assinatura.
Como funciona o Modo em Lote? Ative o Modo em Lote com o botão de alternância, depois insira um JWT por linha. Clique em "Processar Todos" para decodificar cada token. A tabela de saída mostra o algoritmo de cada token (do cabeçalho) e seu payload completo como string JSON. Tokens malformados mostram um erro na coluna de saída.
Ferramentas relacionadas
O Codificador/Decodificador Base64 lida com a codificação Base64 segura para URL usada dentro dos segmentos JWT. O Formatador JSON é útil para formatar o payload JSON decodificado quando você deseja explorar estruturas aninhadas. O Gerador de Senhas pode gerar segredos aleatórios fortes para usar como chaves de assinatura HMAC.
Experimente o JWT Encoder/Decoder agora: JWT Encoder/Decoder