Codificador JWT

Crie e assine JWTs com HS256, HS384 ou HS512 no navegador. Edite o JSON do cabeçalho e do payload; a ordem das claims e campos como kid são mantidos.

Os dados inseridos e arquivos ficam no navegador

Cabeçalho, payload e assinatura

Assinatura

Corrija o JSON do cabeçalho e do payload — o token assinado aparece aqui enquanto você digita.

Nesta página

Monte um JSON Web Token assinado para testar APIs e fluxos de autenticação: edite o JSON do cabeçalho e do payload, escolha HS256, HS384 ou HS512, informe um segredo e copie o token, que se atualiza a cada tecla.

Funcionalidade detalhada

O cabeçalho e o payload precisam ser, cada um, um objeto JSON; JSON inválido ou algo que não é objeto, como um array, é sinalizado abaixo do campo e nenhum token é gerado. O JSON é compactado (sem espaços) e codificado em base64url sem padding, mantendo a ordem das suas claims e campos extras do cabeçalho como kid ou cty. O valor alg do cabeçalho é substituído pelo algoritmo escolhido na lista, ou adicionado no início se estiver faltando.

A assinatura HMAC (SHA-256, SHA-384 ou SHA-512) é calculada por um módulo criptográfico em Rust compilado para WebAssembly; o segredo é usado como texto UTF-8. Só há algoritmos HMAC simétricos — tokens RS256 ou ES256, que exigem chave privada, não podem ser criados aqui. Um segredo vazio ainda gera um token assinado com chave vazia, o que só serve para experimentos.

O segredo e as claims ficam na página e não são salvos. A ferramenta não adiciona iat nem exp sozinha: coloque você mesmo valores NumericDate (Unix time em segundos) no payload.

Exemplos práticos

Vetor de teste do jwt.io: o cabeçalho padrão {"alg":"HS256","typ":"JWT"} e o payload {"sub":"1234567890","name":"John Doe","iat":1516239022} com o segredo your-256-bit-secret geram um token terminado em SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c, exatamente como no jwt.io.

Key ID e expiração: cabeçalho {"alg":"HS256","typ":"JWT","kid":"key-2026"}, payload {"sub":"42","role":"admin","exp":1767225600} e algoritmo HS384 — o cabeçalho codificado vira {"alg":"HS384","typ":"JWT","kid":"key-2026"}, com a ordem dos campos mantida, e a assinatura tem 64 caracteres.

Não é um objeto: um payload [1,2] mostra “Deve ser um objeto JSON” abaixo do campo e o token é limpo.

Como usar esta ferramenta

  1. Edite o cabeçalho

    Ajuste o JSON em Cabeçalho — adicione kid se o seu verificador precisar; o alg vem da lista de algoritmos.

  2. Escreva as claims

    Coloque suas claims (sub, role, exp …) em Payload como um objeto JSON.

  3. Escolha o algoritmo e o segredo

    Selecione HS256, HS384 ou HS512 em Algoritmo e digite o segredo compartilhado em Chave Secreta.

  4. Copie o token

    O token em Token Codificado se atualiza a cada mudança; clique em Copiar Token para copiá-lo.

Dicas e melhores práticas

  • Use um segredo aleatório pelo menos do tamanho do hash: 32 bytes para HS256, 48 para HS384, 64 para HS512.
  • exp, nbf e iat são em segundos, não em milissegundos: 1767225600, não 1767225600000.
  • Todo caractere do segredo conta, inclusive um espaço ou quebra de linha no final.
  • O payload é só codificado em base64url, não criptografado — qualquer pessoa com o token pode lê-lo.
  • Confira o resultado no Decodificador JWT com o mesmo segredo.