Assinatura JWT HMAC
JWT = Base64URL(cabeçalho) + '.' + Base64URL(carga útil) + '.' + Base64URL(HMAC(segredo, entrada assinada))
Gere um JSON Web Token assinado com HMAC para os seus testes: introduza o cabeçalho e o payload em JSON, escolha HS256, HS384 ou HS512 e o seu segredo; alg e typ são preenchidos automaticamente.
Para testes e desenvolvimento: não utilize um segredo de produção num dispositivo partilhado ou não fiável.
O codificador JWT cria um token assinado com HMAC a partir de um cabeçalho, de um payload JSON e de um segredo partilhado. Destina-se a programadores e testers que precisam de um token à medida para chamar uma API local, escrever um teste automatizado ou reproduzir um caso limite (token expirado, perfil em falta). Foi concebido para desenvolvimento e testes, não para emitir tokens de produção.
A ferramenta verifica se o cabeçalho e o payload são objetos JSON válidos e depois define no cabeçalho alg com o algoritmo escolhido e typ com JWT. Cada objeto é serializado e codificado em Base64URL (RFC 4648, sem preenchimento =), e os dois segmentos são unidos por um ponto. Por exemplo, o cabeçalho {"alg":"HS256","typ":"JWT"} passa a eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.
A assinatura é um HMAC calculado sobre a cadeia «cabeçalho.payload» com SHA-256, SHA-384 ou SHA-512 consoante o algoritmo (RFC 7518, secção 3.2), através da Web Crypto API. O resultado, codificado em Base64URL, forma o terceiro segmento do JWT (RFC 7519). A RFC 7518 exige uma chave pelo menos tão longa como a saída do hash: 256 bits (32 bytes) para HS256, 384 bits para HS384 e 512 bits para HS512. As datas exp, iat e nbf do payload devem ser indicadas em segundos Unix, por exemplo "exp": 1767225600 para 1 de janeiro de 2026 às 00:00 UTC.
Edite as duas áreas JSON pré-preenchidas ou importe um ficheiro .json. Acrescente os seus claims: sub, iss, aud, exp, perfis ou campos personalizados.
Selecione HS256, HS384 ou HS512 e introduza o segredo partilhado. Os campos alg e typ do cabeçalho são atualizados automaticamente.
Clique em Gerar: o token assinado é apresentado e pode ser copiado. Surge um erro se o JSON for inválido ou se o segredo estiver vazio.
JWT = Base64URL(cabeçalho) + '.' + Base64URL(carga útil) + '.' + Base64URL(HMAC(segredo, entrada assinada))
Crie um token assinado com o segredo do seu ambiente de desenvolvimento para chamar uma rota protegida com curl ou Postman, sem passar por todo o fluxo de início de sessão.
Coloque exp no passado ou retire um claim roles para confirmar que o seu middleware devolve de facto um erro 401 ou 403 nesses casos limite.
Gere tokens estáveis para os seus testes de integração e verifique-os depois com o verificador JWT para garantir que o segredo e os claims correspondem ao que o servidor espera.
Entrada
Algoritmo: HS256; Cabeçalho JSON: {"alg":"HS256","typ":"JWT"}; Carga útil JSON: {"sub":"1234567890","name":"John Doe","iat":1516239022}; Segredo: chave-de-testeResultado
JWT assinado: três segmentos Base64URL separados por pontos; a assinatura usa HMAC-SHA256.Um JWT constrói-se codificando em Base64URL um cabeçalho JSON e um payload JSON e assinando depois a cadeia «cabeçalho.payload» com o algoritmo escolhido. Aqui basta introduzir os dois objetos e um segredo e clicar em Gerar. Em produção, esta etapa é feita pelo seu servidor de autenticação ou por uma biblioteca como jose ou jsonwebtoken.
A RFC 7518 exige uma chave de pelo menos 256 bits, ou seja, 32 bytes, para HS256; 48 bytes para HS384 e 64 bytes para HS512. Um segredo aleatório com esse tamanho, por exemplo criado com um gerador de tokens seguros, impede ataques de dicionário à assinatura.
Estes algoritmos HMAC precisam apenas de um segredo partilhado, o que basta para criar tokens de teste. RS256 ou ES256 exigiriam uma chave privada, que não deve ser manipulada numa ferramenta web. Se várias partes tiverem de verificar os seus tokens sem os poderem emitir, utilize um algoritmo assimétrico no servidor.
Acrescente ao payload o claim exp com um carimbo temporal Unix em segundos, por exemplo "exp": 1767225600. Um conversor de timestamp ajuda a calcular esse valor a partir de uma data. Considere também iat para indicar a data de emissão.
Não, a ferramenta foi concebida para desenvolvimento e testes. Em produção, os tokens devem ser emitidos por um servidor que mantenha o segredo fora do alcance dos utilizadores, imponha durações curtas e faça a rotação das chaves.
Não. A codificação e a assinatura HMAC são calculadas no seu navegador com a Web Crypto API, sem qualquer pedido de rede. Evite, ainda assim, introduzir um segredo de produção, porque quem o conhecer pode assinar tokens que a sua API aceitará.
Fluxo de trabalho recomendado
Descubra ferramentas que se integram naturalmente antes, depois ou em conjunto com esta.
Descodifique um JWT para ler o cabeçalho, o payload, os claims e as datas de expiração.
Verifique a assinatura de um JWT com um segredo HMAC ou uma chave pública JWK, JWKS ou PEM e controle exp, nbf, iss e aud.
Saiba o que contém um JWT, o que a sua assinatura prova realmente e porque descodificar um token não equivale a verificá-lo.
Entenda como OAuth 2.0, PKCE, JWT, JWK e JWKS se relacionam: autorização, tokens, chaves públicas e verificação.
Compreenda HSTS, Referrer-Policy, Permissions-Policy, proteções de framing e isolamento cross-origin antes de os implementar.
Aprenda a construir uma CSP progressiva, compreender as suas diretivas e evitar políticas demasiado permissivas ou que quebram o site.