> decodificar | inspecionar | verificar <
// Decodifique e inspecione JSON Web Tokens (JWT) instantaneamente
Processamento Local
Decodificação JWT 100% no lado do cliente. Seus tokens nunca saem do seu navegador.
Auto-Decodificação
Decodifique tokens JWT automaticamente ao colar ou digitar.
Inspeção Completa do Token
Visualize cabeçalho, payload e assinatura. Verifique algoritmo e expiração.
// SOBRE A DECODIFICAÇÃO JWT
Estrutura JWT:
Um JSON Web Token (JWT) consiste em três partes codificadas em Base64URL separadas por pontos: cabeçalho.payload.assinatura. O cabeçalho especifica o algoritmo e o tipo de token. O payload contém as declarações (dados). A assinatura verifica a integridade do token.
Exemplo:
eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0In0.signature → {"alg":"HS256"} + {"sub":"1234"}
Casos de Uso Comuns:
- >Depuração de tokens de autenticação em aplicações web
- >Inspeção de tokens OAuth 2.0 e OpenID Connect
- >Verificação de expiração e declarações de tokens
- >Compreensão da estrutura JWT conforme RFC 7519
- >Verificação da integridade da codificação Base64URL
>> perguntas frequentes
P: O que é um JSON Web Token (JWT)?
R: JWT (JSON Web Token) é um padrão aberto (RFC 7519) para transmitir informações de forma segura entre partes como um objeto JSON. É compacto, seguro para URLs e comumente usado para autenticação.
P: Quais são as três partes de um JWT?
R: Um JWT consiste em três partes separadas por pontos: o Cabeçalho (algoritmo e tipo), o Payload (declarações e dados) e a Assinatura (hash de verificação). Cada parte é codificada em Base64URL.
P: Um JWT pode ser decodificado sem a chave secreta?
R: Sim, o cabeçalho e o payload de um JWT podem ser decodificados por qualquer pessoa, pois são simplesmente codificados em Base64URL (não criptografados). A chave secreta é necessária apenas para verificar a assinatura.
P: Qual a diferença entre JWT e autenticação baseada em sessão?
R: Sessões armazenam o estado no servidor com um cookie de ID de sessão. JWTs são sem estado — o próprio token contém todas as informações necessárias. JWTs são melhores para sistemas distribuídos e APIs.
P: Como funciona a expiração do JWT?
R: A declaração exp no payload JWT especifica o tempo de expiração como um timestamp Unix. Após esse tempo, o token deve ser considerado inválido.
// Algoritmos de assinatura JWT comuns
O valor alg do cabeçalho define como a assinatura é feita. HS* usa um segredo compartilhado; RS*, PS*, ES* e EdDSA usam pares de chaves.
| alg | Algoritmo |
|---|---|
| HS256 | HMAC + SHA-256 |
| HS512 | HMAC + SHA-512 |
| RS256 | RSA PKCS#1 v1.5 + SHA-256 |
| PS256 | RSASSA-PSS + SHA-256 |
| ES256 | ECDSA P-256 + SHA-256 |
| EdDSA | Ed25519 |
// Verificar um JWT no código
Decodificar não verifica nada. Ao verificar, informe sempre explicitamente os algoritmos permitidos.
Node.js (jsonwebtoken) jwt.verify(token, secret, { algorithms: ['HS256'] })
Python (PyJWT) jwt.decode(token, key, algorithms=["HS256"])
PHP (firebase/php-jwt) JWT::decode($token, new Key($key, 'HS256'))
Go (golang-jwt) jwt.Parse(token, keyFunc, jwt.WithValidMethods([]string{"HS256"}))
Java (jjwt) Jwts.parser().verifyWith(key).build().parseSignedClaims(token)
>> Mais perguntas
P: O que significam os claims padrão iss, sub, aud, exp, nbf, iat e jti?
R: iss é o emissor, sub o sujeito (geralmente o ID do usuário), aud o destinatário pretendido, exp a expiração, nbf o início da validade, iat o momento da emissão e jti um identificador único do token. As datas são em segundos Unix.
P: Um JWT é criptografado?
R: Um JWT assinado comum (JWS) não é criptografado, apenas codificado em Base64URL: qualquer pessoa pode ler o conteúdo. A assinatura protege apenas contra adulteração. Não coloque dados sensíveis nele ou use um JWE criptografado.
P: Como verifico a assinatura de um JWT?
R: É preciso ter a chave: o segredo compartilhado no HS256 ou a chave pública no RS256/ES256. O servidor recalcula a assinatura de Cabeçalho.Payload e compara. Este decodificador funciona no navegador e não verifica a assinatura por você: use uma biblioteca confiável.
P: Quais são os erros de segurança comuns com JWT?
R: Comuns: confiar no valor alg do próprio token (especialmente none), segredos HS256 fracos, não validar exp, iss e aud, dados sensíveis no payload e guardar tokens de longa duração no localStorage.