Ferramentas de Codificação
Ferramentas para codificar e decodificar dados — Base64, codificação de URL e bases numéricas como binário e hexadecimal — tudo rodando inteiramente no seu navegador.
Tarefas rápidas
Um clique abre a ferramenta já configurada para a tarefa.
Ferramentas de Codificação Online - Base64 e URL no Navegador
Codificar não é criptografar. Não esconde nada e não protege nada. A função é pegar dados que quebrariam alguma coisa - um canal que só transporta texto, uma URL que trata & como separador, um cabeçalho de e-mail anterior ao Unicode - e transformá-los em caracteres que sobrevivem à viagem. As ferramentas desta categoria fazem isso nos dois sentidos, inteiramente dentro do seu navegador.
Essa distinção merece ser dita sem rodeios, porque é de longe o mal-entendido mais comum da área. Base64 é reversível por qualquer um, na hora e sem chave. Uma senha guardada como Base64 é uma senha guardada em texto puro com um passo a mais. Quem precisa de sigilo precisa de criptografia, não de codificação.
O que há nesta categoria
| Ferramenta | O que faz | Quando usar |
|---|---|---|
| Codificador Base64 | Converte texto e arquivos para Base64 e de volta, incluindo a variante segura para URL | Embutir uma imagem em CSS, ler uma chave de API ou passar dados binários por um campo só de texto |
| Codificador URL | Codifica e decodifica URLs e valores de query string | Um link quebra no primeiro espaço, e comercial ou caractere não latino |
| Conversor de bases numéricas | Converte entre binário, octal, decimal, hexadecimal e qualquer base até 36, e transforma texto em bytes e de volta | Um valor num dump hexadecimal, uma máscara de bits ou uma permissão precisa ser lido como número |
| Codificador de entidades HTML | Escapa texto para HTML com entidades nomeadas ou numéricas, e decodifica qualquer entidade de volta para texto | Um exemplo de código, um comentário de usuário ou uma exportação mostra < ou & onde deveria mostrar < ou & |
O que o Base64 realmente faz
Base64 pega três bytes de cada vez - 24 bits - e os reescreve como quatro caracteres de um alfabeto de 64: A-Z, a-z, 0-9, mais + e /. Como 64 é 2 elevado a 6, cada caractere de saída carrega exatamente seis bits. Quando a entrada não divide certo por três, a saída é completada com = para que o comprimento seja sempre múltiplo de quatro.
A consequência é aritmética, não opinião: a saída Base64 é cerca de 33% maior que a entrada. Codificar uma imagem de 300 KB para embutir numa folha de estilos gera aproximadamente 400 KB de texto. Isso custa de verdade e é a razão de embutir valer a pena em ícones pequenos e raramente em fotografias.
Os caracteres + e / são um problema dentro de URLs, onde já significam algo. A variante segura para URL troca por - e _ e geralmente descarta o preenchimento. É a usada pelos JSON Web Tokens, e confundir as duas é o motivo de um token às vezes falhar numa ferramenta e funcionar em outra.
O que a codificação percentual realmente faz
Uma URL tem gramática. ? abre a query string, & separa parâmetros, = liga nome a valor, # abre o fragmento, e espaço não é permitido de jeito nenhum. Quando um valor contém um desses caracteres, ele precisa ser escapado ou a URL passa a significar outra coisa. A codificação percentual troca o caractere por % seguido do valor do byte em hexadecimal: espaço vira %20, & vira %26, / vira %2F.
Texto não ASCII é codificado como seus bytes UTF-8, um %XX por byte. Um único caractere persa ou japonês costuma virar três escapes. É por isso que uma URL com um termo de busca em escrita não latina parece bem mais longa que o próprio termo.
A armadilha é saber que parte da URL você está codificando. Codificar a URL inteira transforma os :// e / em escapes e a destrói. Quase sempre você quer codificar um valor de parâmetro e montar a URL em volta. O codificador URL faz as duas coisas, mas a escolha é sua.
Bases numéricas: a codificação por baixo de todas as outras
Base64 e codificação percentual trabalham sobre bytes, e bytes costumam ser escritos em hexadecimal ou binário. O conversor de bases numéricas lê um valor em qualquer base e o mostra nas outras de uma vez, sem limite de 64 bits, e a aba Texto dele mostra os bytes UTF-8 por trás de uma string. É o jeito mais rápido de ver por que é ocupa dois bytes, por que %C3%A9 é a sua forma com codificação percentual e por que 0xFF é 255.
Onde você vai encontrar essas codificações
- Data URI -
data:image/png;base64,...embute uma imagem direto no HTML ou CSS e economiza uma requisição. - Autenticação básica HTTP - o cabeçalho é literalmente
Basicseguido do Base64 deusuario:senha. Reversível por quem o vir, e por isso só cabe dentro de TLS. - JSON Web Tokens - três segmentos Base64 seguros para URL unidos por pontos. O payload é legível sem chave nenhuma.
- Anexos de e-mail - o MIME transporta binário como Base64 desde o início dos anos 1990, e ainda transporta.
- Query strings - qualquer termo de busca, destino de redirecionamento ou valor de filtro com espaço ou símbolo.
- Arquivos de configuração e segredos - segredos do Kubernetes, chaves de contas de serviço e certificados são rotineiramente guardados em Base64.
Falhas comuns e suas causas
- Codificação dupla. Um valor é codificado pelo seu código e de novo por um framework, e
%20vira%2520. Se você vê%25numa URL, algo codificou um sinal de porcentagem que já era um escape. - Alfabeto Base64 errado. Um JWT que não decodifica costuma ser Base64 seguro para URL entregue a um decodificador padrão, ou o contrário.
- Preenchimento ausente. Alguns produtores tiram o
=final. Decodificadores rígidos rejeitam o resultado; os tolerantes recompõem. - Codificar a URL inteira. O esquema e o caminho ficam escapados e o link para de resolver.
- Supor que é seguro. Base64 num cookie, num cabeçalho ou num arquivo de configuração é legível por qualquer um que consiga ler o arquivo.
- Sinais de mais em query strings. Em dados de formulário
+significa espaço; num caminho significa um mais literal. O mesmo caractere, dois significados.
Por que importa que isso rode localmente
As strings que as pessoas precisam codificar e decodificar são desproporcionalmente sensíveis: cabeçalhos de autorização, tokens de sessão, chaves de contas de serviço, URLs assinadas. Colar uma delas num site que a processa no servidor entrega uma credencial viva a um terceiro. As duas ferramentas daqui rodam no navegador - a entrada nunca sai da aba, e você pode verificar isso no painel de rede.
Categorias relacionadas
- Ferramentas de texto - formate e valide o JSON que tantas vezes mora dentro de um payload codificado.
- Ferramentas de desenvolvimento - decodifique um JWT como se deve em vez de fazer Base64 das partes na mão, ou gere um hash quando precisar de uma impressão digital e não de uma forma reversível.
- Geradores - produzem os identificadores e segredos que depois acabam codificados.