Decodificar JWT

Processado neste navegador

Limite de texto: 2000000 caracteres

Esta ferramenta não envia sua entrada.

Só inspeção. Não verifica assinatura. JWT não é cifra. alg:none é perigo.

Mostra header, claims e se o `exp` já passou. Qualquer um com o token lê o payload. Isto não verifica HS256/RS256 e não desencripta JWE.

O 401 estourou em produção e você quer ver se o exp passou, qual o iss ou se o alg é HS256. O trabalho é abrir o token nesta aba, sem mandar o Bearer para um decoder aleatório.

Três pedaços separados por ponto: header, payload, assinatura. Os dois primeiros qualquer um lê. A assinatura a gente não confere.

Como ler

  1. Cole o JWT (sem a palavra Bearer).
  2. Olhe exp / iat — a interface tenta dizer se já expirou.
  3. Não trate claims como verdade só porque decodificou. Sem ver assinatura, um token adulterado também “abre”.

O que não fazer

  • Colar refresh token de produção em ferramenta que você não controla.
  • Achar que decode = login válido.
  • Usar AES achando que é a mesma coisa.

Isto não é jwt.io no título e não é “descriptografar JWT”.

Perguntas frequentes

Colar o Bearer token aqui é seguro?

O decode roda nesta aba — melhor do que um site que loga paste. Ainda assim é um token de sessão: não cole o de produção se puder usar um de staging. Abra a Rede para ver que não sai POST.

Vocês validam a assinatura?

Não. Só decodificam header e payload. “Assinatura verificada” de outros debuggers é outro produto — e fácil de se enganar.

JWT é criptografado?

O JWS comum (três partes) é assinado, não secreto. O payload é Base64URL. JWE (criptografado) não é o caso desta página.

O que é `alg: none`?

Algoritmo “nenhum”: alguns parsers antigos aceitavam token sem assinatura. Se o header mostrar none, trate como bug grave no emissor.

Dá para “quebrar” o secret HS256?

Não oferecemos isso. Também não forjamos admin: true.

O payload parece Base64 solto.

É Base64URL. Para string genérica, use Base64. Para JSON bonito dos claims, copie e formate.

Ferramentas relacionadas