Codificadores e Decodificadores

Ferramentas para codificar e decodificar texto entre formatos. Todo o processamento acontece no seu navegador, então seus dados nunca são enviados.

Escolha a ferramenta de codificação

Use Base64 para levar bytes por um canal de texto e a codificação de URL para colocar um valor com segurança dentro de um endereço. Use o gerador de hash para checksums e para assinaturas HMAC, em que um segredo compartilhado prova quem produziu a mensagem.

Use o decodificador de JWT para ler as claims de um token e, com o segredo, conferir a assinatura; o gerador de JWT para criar um token de teste; e o decodificador de CSR para ver quais nomes e qual chave uma solicitação de certificado realmente pede antes de enviá-la à autoridade.

Quatro tarefas parecidas que não são a mesma

Codificar reescreve dados num alfabeto mais seguro e é totalmente reversível por qualquer um: Base64 e codificação percentual estão nesse grupo. Hash é de mão única e sem chave, então prova que duas entradas são iguais sem revelar nenhuma delas. Assinar acrescenta um segredo, o que transforma a mensagem em prova de quem a enviou. Inspecionar apenas decodifica uma estrutura que já é pública, que é o que fazem os leitores de JWT e de CSR.

Confundir a primeira com a terceira é o erro caro. Um payload Base64 parece embaralhado e não protege nada; quem o tiver lê em um segundo, o que é fácil de demonstrar colando um deles no decodificador aqui.

A falha recorrente são as camadas

Codificação não é idempotente. Escape um valor duas vezes e %20 vira %2520, uma aspa vira uma aspa com barra invertida dobrada, e um payload que deveria conter um objeto contém uma string de JSON. Isso acontece sempre que o código da aplicação codifica algo que um framework já ia codificar de qualquer forma.

A correção é remover uma das duas etapas, e não decodificar duas vezes do outro lado, o que só muda o bug de lugar. Decodificar uma camada por vez nestas ferramentas mostra quantas camadas havia de fato, e costuma ser o caminho mais rápido para descobrir qual componente acrescentou a camada extra.

Pense no que você está colando

Tudo aqui roda no seu navegador, então nada do que você cola é enviado ou registrado. Vale saber disso porque o material que chega a estas ferramentas raramente é neutro: um CSR carrega hostnames internos e uma organização, um JWT carrega identificadores de usuário e escopos, e a entrada de um hash pode ser o próprio segredo.

Ainda assim, dois hábitos valem a pena. Verifique uma assinatura com um segredo de teste em vez de um de produção sempre que der, e nunca cole uma chave privada em página nenhuma, incluindo esta - um CSR pode ser compartilhado, a chave que o assinou não.