Pular para o conteúdo

JWT Decoder & Encoder · Security

Decodifique, verifique e assine JSON Web Tokens no seu navegador.

Cole um token header.payload.signature para ler seus claims e verificar a assinatura com um segredo, PEM, JWK ou JWKS — ou troque de aba para assinar seu próprio token e gerar chaves de teste. Nada sai nunca da aba.

Roda no seu navegador HS · RS · PS · ES · EdDSA Sem cadastro Atualizado em 26 de jul. de 2026

Ambiente de testes do JWT Decoder & Encoder

Examples

Results update as you type — press Enter to run now.

Treat pasted keys and secrets as live credentials — clipboard history and screenshots can leak them.

Everything stays in your browser — nothing is sent anywhere. Verifies HS/RS/PS/ES 256–512 and EdDSA against a shared secret, a PEM BEGIN PUBLIC KEY, a JWK, or a full JWKS (matched by kid).

Snapshots save only the token (never keys) to this browser's localStorage — nothing leaves your machine.

Result

No share links on this tool — inputs may be secrets.

Paste a JWT or pick an example to see its header, payload, claims, and signature decoded here.

A lacuna

Um token é só três strings — até que um claim esteja errado.

Depurar a autenticação significa ficar olhando para um eyJ… blob opaco e adivinhar. O token está expirado? A audiência está correta? O emissor o assinou com a chave que você acha que ele usou? As respostas estão todas ali dentro — codificadas em base64url, a um ponto de distância — mas lê-las a olho nu é propenso a erros, e muitos decodificadores online enviam silenciosamente seu token para um servidor. O mesmo vale para assistentes de IA: um token colado em um chat vai parar no histórico de conversas de um terceiro — e possivelmente no pipeline de treinamento dele. Nunca cole um token de produção em um chat de IA. Decodifique-o localmente.

Esta bancada de JWT transforma o blob nos fatos concretos de que você precisa — o algoritmo do cabeçalho, cada claim com uma legenda em linguagem simples, a expiração em formato legível — e, quando você fornece o segredo, a chave pública, o JWK ou o JWKS, confirma a assinatura com a Web Crypto API em todos os treze algoritmos JWS. Ela também faz o caminho inverso: edite o JSON do cabeçalho e do payload, assine um novo token ou gere um par de chaves de teste RSA / EC / Ed25519 — tudo totalmente do lado do cliente, por isso é seguro usá-la até mesmo com tokens de produção.

Precisa dos bytes brutos em vez disso? O Base64 Encoder / Decoder lida com payloads arbitrários em base64 e base64url.

The Pipeline

Como funciona.

Cinco passos determinísticos rodam a cada tecla pressionada — tudo dentro da aba do seu navegador, com a assinatura e a verificação tratadas pela Web Crypto API.

  1. Divida o token.

    O JWT compacto é dividido pelos seus dois pontos nos segmentos de cabeçalho, payload e assinatura.

  2. Decodifique as partes.

    Os segmentos de cabeçalho e payload são decodificados de base64url de volta para seus objetos JSON originais.

  3. Leia os claims.

    Os claims padrão são expostos com legendas em linguagem simples, e exp, nbf e iat são convertidos em horários legíveis com uma verificação de expiração.

  4. Verifique a assinatura.

    Forneça um segredo, uma chave pública PEM, um JWK ou um JWKS e a assinatura HS / RS / PS / ES / EdDSA é recalculada e verificada localmente.

  5. Assine o seu próprio token.

    Mude para a aba Encode & sign para criar um token a partir de JSON editável — ou gere antes um novo par de chaves de teste.

Referência do token

Anatomia de um JWT.

Três segmentos em base64url unidos por pontos. O cabeçalho e o payload são JSON; a assinatura é calculada sobre os dois primeiros e é o que a verificação reconfere.

header.payload.signature

Os dois pontos dividem o token em três partes. A assinatura cobre os bytes de header.payload — altere qualquer um deles e ela deixa de coincidir.

jwt-structure
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9   ← header   (base64url JSON)
.
eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6...   ← payload  (base64url JSON)
.
SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQ   ← signature (base64url bytes)

      header . payload . signature
      └─────── signed input ──────┘ ⇒ signature

Claims comuns

Uma legenda para os campos registrados do cabeçalho e do payload. Horários como exp são NumericDate — segundos desde a época Unix.

jwt-claims
alg   header   signing algorithm, e.g. HS256 / RS256
typ   header   token type, usually "JWT"
kid   header   key id — which key signed this token

iss   payload  issuer — who created the token
sub   payload  subject — who the token is about
aud   payload  audience — who the token is for
exp   payload  expiration time (NumericDate, seconds)
nbf   payload  not-before time (NumericDate, seconds)
iat   payload  issued-at time (NumericDate, seconds)
jti   payload  unique token id

Próximo passo

Já tem os bytes? Codifique, decodifique e gere o hash deles.

Quando um token é lido corretamente, desça um nível: o Base64 Encoder / Decoder lida com os payloads em base64url a partir dos quais os JWTs são construídos, e o Hash Generator calcula os digests SHA que estão por trás da assinatura HMAC — ambos inteiramente no seu navegador.

verify.txt
HMACSHA256(
  base64url(header) + "." +
  base64url(payload),
  secret
)  ⇒  signature ✓

FAQ

Suas perguntas, respondidas.

Toque em uma pergunta para expandir a resposta.

Um JSON Web Token (JWT) é uma credencial compacta e segura para URL formada por três partes em base64url separadas por pontos: um cabeçalho, um payload de claims e uma assinatura — escrita como header.payload.signature. O cabeçalho indica o algoritmo de assinatura, o payload carrega claims como para quem é o token e quando ele expira, e a assinatura permite que o destinatário confirme que o token foi emitido por uma parte confiável e não foi adulterado. Os JWTs são amplamente usados como tokens de acesso e de identidade em OAuth 2.0 e OpenID Connect.

Não. A decodificação e qualquer verificação de assinatura rodam 100% do lado do cliente na sua aba: não há servidor, nem conta, nem registros nem requisições de rede. O token que você cola e o segredo ou a chave pública que você fornece permanecem na memória desta página e nunca são enviados. Você pode decodificar tokens offline.

Sim, de forma opcional e local. Cole um segredo compartilhado para um token HMAC (HS256 / HS384 / HS512) ou uma chave pública para um token assimétrico — RS256–512, PS256–512, ES256–512 ou EdDSA — e a ferramenta recalcula a assinatura sobre os bytes de header.payload usando a Web Crypto API diretamente no seu navegador, e então informa se é válida ou inválida. A chave pode ser um bloco PEM "BEGIN PUBLIC KEY", um único JWK ou um JWKS completo (a chave correta é escolhida pelo kid do cabeçalho). Se você deixar a chave em branco, ela apenas decodifica sem verificar a assinatura.

Sim. Mude para a aba "Encode & sign" (codificar e assinar), edite o JSON do cabeçalho e do payload, escolha um algoritmo e forneça um segredo (para HS256/384/512) ou uma chave privada PKCS8 / um JWK privado (para RS, PS, ES ou EdDSA). O token é assinado ao vivo no seu navegador com a Web Crypto API — nada é gerado em um servidor. Há também uma aba "Generate keys" (gerar chaves) que cria segredos HMAC e pares de chaves RSA / EC / Ed25519 de teste, exportados como PEM e como JWK.

Todos os treze algoritmos de assinatura JWS que os navegadores conseguem executar nativamente: HS256, HS384 e HS512 (HMAC), RS256, RS384 e RS512 (RSASSA-PKCS1-v1_5), PS256, PS384 e PS512 (RSA-PSS), ES256, ES384 e ES512 (ECDSA sobre P-256, P-384 e P-521), e EdDSA (Ed25519, nos navegadores que o suportam). Tokens não assinados com alg:"none" são decodificados — com um aviso — mas nunca são criados aqui, e o ES256K (secp256k1) não está disponível na Web Crypto API.

Para desenvolvimento e testes, sim: as chaves vêm do gerador criptograficamente seguro da Web Crypto API, são criadas inteiramente na sua máquina e nunca são transmitidas nem armazenadas por esta página. Para produção, gere e mantenha as chaves no KMS, no HSM ou no gerenciador de segredos da sua plataforma — uma aba de navegador não oferece armazenamento seguro, e qualquer coisa exibida na tela pode acabar em capturas de tela ou no histórico da área de transferência.

São claims registrados padrão expressos como NumericDate (segundos desde a época Unix). exp (expiration time) é o instante após o qual o token deve ser rejeitado; nbf (not before) é o instante antes do qual ele não deve ser aceito; iat (issued at) é quando o token foi criado. O decodificador converte cada um para um horário UTC legível e sinaliza se o token está atualmente expirado ou ainda não é válido.

A decodificação acontece apenas no seu navegador, então nada é transmitido — mas um JWT continua sendo uma credencial ativa. Trate-o como uma senha: cole apenas um token que você controla, prefira um token de curta duração ou de teste, e lembre-se de que o payload está meramente codificado em base64url, não criptografado, de modo que qualquer pessoa que tenha o token pode ler seus claims. Rotacione ou revogue um token se você suspeitar que ele foi exposto em algum lugar. Essa cautela vale em dobro para chatbots de IA: trate qualquer token colado em uma janela de chat como exposto, e rotacione-o.

Os JWTs assinados padrão não são criptografados — o cabeçalho e o payload estão apenas codificados em base64url, então qualquer pessoa que tenha o token pode ler seus claims sem nenhuma chave. A assinatura prova que o token não foi adulterado, mas não oculta o conteúdo. Por isso, você nunca deve armazenar senhas, dados pessoais ou segredos dentro dos claims de um JWT.

Sim. Ler o cabeçalho e o payload não exige nenhuma chave porque os dados estão apenas codificados em base64url. O segredo ou a chave pública só são necessários para verificar a assinatura — para confirmar que o token realmente veio do emissor esperado. Este decodificador permite que você inspecione os claims fornecendo ou não uma chave.

Cole o token no JWT Decoder e observe a linha do claim exp. A ferramenta converte o timestamp Unix bruto em uma data UTC legível e sinaliza automaticamente o token como expirado se o horário atual já tiver ultrapassado o valor de exp. Os claims iat (issued at) e nbf (not before) também são exibidos com suas datas em formato legível.

Não. A decodificação apenas revela o conteúdo do cabeçalho e do payload — ela não prova que o token é autêntico. Para validar um token você precisa verificar sua assinatura usando o segredo ou a chave pública do emissor. Esta ferramenta pode realizar essa verificação localmente no navegador, mas para decisões de autorização a assinatura sempre deve ser verificada do lado do servidor antes de confiar em qualquer claim.

More free, private DevOps tools.

O JWT Decoder & Encoder é uma das ferramentas do OpsCanopy — um dossel crescente de validadores, conversores e testadores baseados no navegador que nunca tocam em um servidor.

29 ferramentas gratuitas, todas capazes de funcionar offline — o opscanopy.com não exige cadastro e não envia nada.

Mais segurança e codificação: o Hash Generator e o Base64 Encoder / Decoder, ou explore o diretório de ferramentas completo.

Fornecido como está, por conveniência; um JWT é uma credencial ativa, então sempre manuseie e armazene os tokens de forma segura. OpsCanopy é gratuito e aberto.