O que faz
Decodifica um
JSON Web TokenJSON Web TokenA compact, URL-safe token that carries claims (like identity or expiry) between two parties, signed to prevent tampering.Learn more
e mostra o que há dentro — localmente, no seu navegador. Cole um JWT e o header e o payload abrem como JSON formatado em painéis lado a lado, com chips dealg e typ acima deles. Sob esses chips ficam até três avisos de segurança: alg none — token não assinado (vermelho, para alg: none), simétrico — verifique no servidor (informação, para HS256/HS384/HS512) e sem claim exp (acento, quando o payload não carrega validade). Os claims de tempo (exp, iat, nbf) são exibidos de forma humana — exp em 43 dias, iat há 2 horas — e o painel do payload carrega um selo válido ou expirado guiado por exp.
Esta ferramenta apenas decodifica — ela nunca verifica uma assinatura. Verificar uma assinatura exige o segredo ou a chave pública, que vive no servidor, então cada claim lido aqui é uma afirmação do remetente, não um fato verificado.
Como usar
- Escolha um chip de exemplo — HS256, Expired, alg: none — ou cole seu próprio token na caixa
JWTJWTA compact, URL-safe token that carries claims (like identity or expiry) between two parties, signed to prevent tampering.Learn more
. Um token tem três partes separadas por pontos; menos de duas partes desenha uma caixa de erro. - Leia os painéis: Header (metadados do algoritmo) à esquerda, Payload (os claims) à direita. Copie qualquer um como JSON.
- Percorra os chips de aviso: eles marcam tokens não assinados, algoritmos simétricos e validade ausente de relance.
- Confira o selo ao lado do Payload:
validenquantoexpestá no futuro,expiredassim que passa. - Copie um link de compartilhamento que carrega o token na URL, ou leia a assinatura bruta exibida sob os painéis.
Exemplos
O chip HS256 preenche o token eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkFkYSBMb3ZlbGFjZSIsImlhdCI6MTcwMDAwMDAwMH0.sig (assinatura fictícia). Ele decodifica para:
| Parte | Decodificado |
|---|---|
| Header | { "alg": "HS256", "typ": "JWT" } |
| Payload | { "sub": "1234567890", "name": "Ada Lovelace", "iat": 1700000000 } |
Seu payload não tem exp, então os avisos dizem simétrico — verifique no servidor e sem claim exp.
O chip Expired carrega exp: 1700000000 (2023-11-14T22:13:20Z) mais um iat um segundo antes — ambos no passado — então o selo do payload diz expired e o chip humanizado diz exp há 1015 dias (a contagem cresce com o tempo; o selo não volta atrás).
O chip alg: none é eyJhbGciOiJub25lIn0.eyJzdWIiOiIxIn0. — header { "alg": "none" }, payload { "sub": "1" }, assinatura vazia após o ponto final. Decodifica como qualquer outro token e desenha o aviso vermelho alg none — token não assinado mais sem claim exp; a linha da assinatura mostra (none).
Um token de duas partes como eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxIn0 (header e payload, sem terceiro segmento) ainda decodifica — a assinatura ausente é renderizada como (none). Uma entrada com menos de duas partes separadas por pontos, como abc, desenha a caixa de erro: A JWT has 3 dot-separated parts: header.payload.signature.
Bom saber
- Um
JWTJWTA compact, URL-safe token that carries claims (like identity or expiry) between two parties, signed to prevent tampering.Learn more
são três partes base64url unidas por pontos:header.payload.signature. Base64url troca+→-e/→_e descarta o padding=para que um token possa viver numa URL ou cabeçalho HTTP — por isso umJWTJWTA compact, URL-safe token that carries claims (like identity or expiry) between two parties, signed to prevent tampering.Learn more
nunca contém+,/ou=. - A assinatura é calculada sobre
base64url(header) + "." + base64url(payload)com o algoritmo do header —HMACHMACA construction that combines a hash function with a secret key to prove a message is intact and came from someone holding the key.
com um segredo compartilhado (HS256) ou uma chave privada (RS256). Mude um byte de qualquer parte codificada e ela não coincide mais. Qualquer um pode escrever o header e o payload que quiser; a assinatura é a única parte que ninguém consegue forjar sem a chave. É exatamente por isso que esta ferramenta decodifica mas nunca verifica. - Os claims de tempo são segundos Unix:
iat= emitido em,nbf= não válido antes de,exp= expira. Um terceiro segmento ausente é renderizado como(none); tokens de duas partes ainda decodificam. - Privado: a decodificação roda localmente no seu navegador. Um
JWTJWTA compact, URL-safe token that carries claims (like identity or expiry) between two parties, signed to prevent tampering.Learn more
costuma ser uma credencial viva — esta ferramenta nunca o transmite. (O link de compartilhamento carrega o token; compartilhe apenas tokens que você controla.) - Ferramentas relacionadas: Gerador
HMACHMACA construction that combines a hash function with a secret key to prove a message is intact and came from someone holding the key.
, JSON Formatter, Codificar / DecodificarBase64Base64An encoding representing binary data as 64 safe ASCII characters, so it survives transport through text-only channels. It encodes — it does not encrypt.
.