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.
- Decodificador CSRCole uma solicitacao de assinatura de certificado ou um certificado X.509 para ler o que ha dentro: titular, nomes alternativos, algoritmo e tamanho da chave, datas de validade, extensoes e impressoes digitais. Tudo e decodificado no seu navegador e nada e enviado.
- Codificador e Decodificador Base64Codifique texto para Base64 ou decodifique de volta. Unicode é tratado corretamente, então acentos, japonês, chinês, coreano e emoji voltam intactos.
- Codificador e Decodificador de URLCodifique texto para uso em uma URL, ou decodifique de volta. Escolha se está codificando um único valor de query ou uma URL inteira, porque os dois exigem escapes diferentes.
- Gerador de Hash e HMACDigite ou cole um texto para ver seus hashes MD5, SHA-1, SHA-256 e SHA-512 de uma vez, ou mude para HMAC para assiná-lo com uma chave secreta. Tudo roda no seu navegador, então nem o texto nem a chave saem do seu dispositivo.
- Decodificador JWTCole um JWT para ler seu cabeçalho e payload e ver quando ele expira. A decodificação acontece inteiramente no seu navegador, então o token nunca sai do seu dispositivo.
- Gerador de JWTMonte um payload JWT, escolha um algoritmo e assine com seu segredo. A assinatura acontece inteiramente no seu navegador, então o segredo nunca sai do seu dispositivo.
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.
