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.
Ambiente de testes do JWT Decoder & Encoder
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.
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.
Treat pasted keys and secrets as live credentials — clipboard history and screenshots can leak them.
Signing happens in your browser with the Web Crypto API — keys never leave this page. The token is built from minified JSON, so whitespace in the editors never changes the signature. Need a key? Use the Generate keys tab.
Fill in the header, payload, and key to see the signed token here.
Generated locally with the Web Crypto API — nothing leaves your browser. Great for tests and local development; production keys belong in your platform's KMS or secret manager.
Pick a key type and press Generate — the key appears here as PEM and JWK, with copy buttons.
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.
-
Divida o token.
O JWT compacto é dividido pelos seus dois pontos nos segmentos de cabeçalho, payload e assinatura.
-
Decodifique as partes.
Os segmentos de cabeçalho e payload são decodificados de base64url de volta para seus objetos JSON originais.
-
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.
-
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.
-
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.
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.
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.
HMACSHA256(
base64url(header) + "." +
base64url(payload),
secret
) ⇒ signature ✓ FAQ
Suas perguntas, respondidas.
Toque em uma pergunta para expandir a resposta.
O que é um JWT?
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.
O meu token ou o meu segredo saem em algum momento do navegador?
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.
A assinatura é realmente verificada — e como?
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.
Esta ferramenta também consegue criar e assinar um JWT?
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.
Quais algoritmos de assinatura são suportados?
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.
É seguro gerar chaves de assinatura no navegador?
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.
O que significam os claims exp, nbf e iat?
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.
É seguro colar aqui um token de produção?
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 tokens JWT são criptografados ou apenas codificados?
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.
É possível decodificar um JWT sem a chave secreta?
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.
Como verifico online se um token JWT expirou?
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.
Decodificar um JWT verifica ou valida o token?
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.
Mais em Segurança
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.