Gerador de JWT (HS256)
Cria JSON Web Token assinados com HS256 localmente no teu navegador, sem enviar nada.
A carregar Gerador de JWT (HS256)… Se nada acontecer, ativa o JavaScript.
Um JSON Web Token, ou JWT, é um formato de token compacto e assinado usado por todo o lado na autenticação e autorização modernas. Um JWT empacota um cabeçalho e uma carga útil de reivindicações em dois segmentos codificados em Base64url e depois acrescenta uma assinatura que prova que o token não foi adulterado. Este gerador constrói para ti um token HS256 totalmente válido: monta o cabeçalho padrão, codifica a tua carga útil e assina o resultado com HMAC-SHA256 usando um segredo que tu forneces. É a contraparte natural de um descodificador de JWT, permitindo-te criar os tokens que de outro modo apenas conseguirias inspecionar.
Perguntas frequentes
O meu segredo ou a minha carga útil são enviados para algum lado?
O que é o HS256 e como funciona a assinatura?
O que devo colocar na carga útil?
Como adiciono um tempo de expiração?
O HS256 é suficientemente seguro para produção?
Porque é que recebi um erro de JSON inválido?
Posso descodificar o token que acabei de gerar?
O gerador funciona offline?
Sobre Gerador de JWT (HS256)
HS256 é o algoritmo de JWT mais utilizado. É simétrico, o que significa que o mesmo segredo é usado tanto para criar como para verificar a assinatura, o que mantém as coisas simples quando um único serviço emite e verifica os seus próprios tokens. Para usar a ferramenta, cola uma carga útil JSON com as tuas reivindicações (as comuns incluem sub para o sujeito, iat para o momento de emissão e exp para a expiração), introduz o teu segredo de assinatura e clica em Gerar. A ferramenta valida que a tua carga útil é JSON bem formado, comunica um erro claro se não for, e produz um token na conhecida forma cabeçalho.carga útil.assinatura pronto a copiar.
A assinatura acontece inteiramente no teu navegador através da API Web Crypto nativa, sem biblioteca externa e sem pedido de rede. A tua carga útil e, sobretudo, o teu segredo nunca saem do teu dispositivo, nunca são registados e nunca são transmitidos. Como o segredo é a única coisa que deve permanecer confidencial para que o HS256 seja seguro, fazer o trabalho localmente é exatamente a abordagem certa. A ferramenta também funciona totalmente offline depois de a página carregar.
O formato de token escondido à vista de todos
Os JWT foram padronizados no RFC 7519 em 2015, parte de uma família de especificações JOSE (JavaScript Object Signing and Encryption). O formato é deliberadamente seguro para URL: cada um dos três segmentos é codificado em Base64url, que troca os caracteres mais e barra por traço e sublinhado para que um token possa viajar num URL, num cabeçalho HTTP ou num cookie sem mais escapes.
Um detalhe que surpreende muitos programadores é que a carga útil de um JWT assinado não está cifrada, apenas codificada. Qualquer pessoa que intercete o token pode descodificar em Base64url o segmento do meio e ler todas as reivindicações lá dentro. A assinatura garante a integridade e a autenticidade (que o token foi emitido por alguém que possui o segredo e não foi alterado), mas não faz nada para esconder o conteúdo. É por isso que nunca deves colocar palavras-passe ou outros segredos na carga útil de um JWT.
A vulnerabilidade de JWT mais célebre envolvia o campo do algoritmo no cabeçalho. Algumas bibliotecas iniciais confiavam no valor alg cegamente, permitindo a um atacante defini-lo como 'none' e remover a assinatura por completo, ou trocar um token de um algoritmo assimétrico para um simétrico e forjá-lo usando a chave pública como segredo HMAC. As bibliotecas modernas defendem-se disto exigindo que o algoritmo esperado seja especificado à partida, uma lição que moldou a forma como os JWT são validados hoje.