Decodificador JWT

Decodifique um JSON Web Token (JWT) para ver seu cabeçalho, carga útil e assinatura. Útil para depurar e inspecionar tokens JWT usados em autenticação e autorização. O conteúdo do seu JWT não será salvo em nenhum lugar.

Carga útil (Claims):

Cabeçalho (Algoritmo de assinatura e tipo de token):

Assinatura:

A assinatura é exibida como dados codificados em Base64URL. Esta ferramenta não realiza verificação de assinatura.

Mais sobre JSON Web Tokens

Formato JWT

Um JSON Web Token (JWT) é um meio compacto e seguro para URL de representar claims a serem transferidos entre duas partes. Consiste em três partes codificadas em Base64URL separadas por pontos: header.payload.signature. O cabeçalho tipicamente contém o tipo de token (JWT) e o algoritmo de assinatura. A carga útil contém os claims—declarações sobre uma entidade (tipicamente o usuário) e metadados adicionais. A assinatura é usada para verificar que a mensagem não foi alterada no caminho.

JOSE (JSON Object Signing and Encryption)

JWT faz parte do framework maior JOSE (JSON Object Signing and Encryption), que fornece uma forma padronizada de proteger dados baseados em JSON. JOSE inclui várias especificações relacionadas: JWS (JSON Web Signature) para tokens assinados, JWE (JSON Web Encryption) para tokens criptografados, JWK (JSON Web Key) para representar chaves criptográficas, e JWA (JSON Web Algorithms) para especificar algoritmos criptográficos.

JSON Web Signature (JWS)

A maioria dos JWTs que você encontra são tokens JWS—eles são assinados mas não criptografados. Isso significa que qualquer pessoa pode ler a carga útil decodificando-a com Base64URL, mas não podem modificá-la sem invalidar a assinatura. JWS fornece integridade e autenticidade: você pode verificar que o token foi emitido por uma parte confiável e não foi adulterado.

Algoritmos de assinatura

JWS suporta vários algoritmos criptográficos para assinar tokens. Estes se dividem em duas categorias: algoritmos simétricos (mesma chave para assinar e verificar) e algoritmos assimétricos (chave privada para assinar, chave pública para verificar).

Algoritmos HMAC (Simétricos)

HS256, HS384 e HS512 usam HMAC (Hash-based Message Authentication Code) com SHA-256, SHA-384 ou SHA-512 respectivamente. Estes são algoritmos simétricos—a mesma chave secreta é usada tanto para assinar quanto para verificar o token. Os algoritmos HMAC são rápidos e simples mas requerem distribuição segura de chaves já que ambas as partes precisam do mesmo segredo.

Algoritmos RSA (Assimétricos)

RS256, RS384 e RS512 usam RSASSA-PKCS1-v1_5 com SHA-256, SHA-384 ou SHA-512. PS256, PS384 e PS512 usam RSASSA-PSS (esquema de assinatura probabilístico). Os algoritmos RSA usam uma chave privada para assinar e uma chave pública para verificar. Isso permite que a chave de verificação seja compartilhada publicamente sem comprometer a segurança—ideal para sistemas distribuídos onde múltiplos serviços precisam verificar tokens.

Algoritmos de curva elíptica (Assimétricos)

ES256, ES384 e ES512 usam ECDSA (Elliptic Curve Digital Signature Algorithm) com curvas P-256, P-384 ou P-521 respectivamente. Os algoritmos EC oferecem a mesma segurança que RSA mas com tamanhos de chave menores, resultando em assinaturas menores e operações mais rápidas. ES256 é cada vez mais popular para aplicações modernas devido à sua eficiência.

JSON Web Encryption (JWE)

Enquanto JWS fornece tokens assinados, JWE fornece tokens criptografados onde a carga útil é confidencial. Os tokens JWE têm cinco partes em vez de três: cabeçalho, chave criptografada, vetor de inicialização, texto cifrado e tag de autenticação. JWE suporta vários algoritmos de criptografia incluindo AES-GCM e AES-CBC com HMAC. Note que este decodificador só manipula tokens JWS; tokens JWE requerem descriptografia com a chave apropriada.

Especificações RFC

Os padrões JWT e JOSE são definidos em vários RFCs do IETF:

Ferramentas Relacionadas