Codificar e decodificar Base64
Codifique texto ou um arquivo em Base64, ou decodifique de volta; a ferramenta cuida do alfabeto seguro para URL, do Data URI e da quebra de linha MIME.
Solte seus arquivos aqui
.txt, .b64, .base64 · até 150 MB
Como codificar e decodificar Base64
- 1
Escolha codificar ou decodificar
A mesma tela funciona nos dois sentidos, e a direção é a primeira coisa que você define, para que nada seja codificado duas vezes por engano.
- 2
Cole o texto ou solte um arquivo
Qualquer tipo de arquivo pode ser codificado; a decodificação aceita uma string colada, um Data URI ou um arquivo de texto que contenha um deles.
- 3
Copie o resultado ou baixe o arquivo
O resultado decodificado é reconhecido automaticamente como texto ou binário e recebe a extensão certa no nome.
Para que serve o Base64 e para que não serve
O Base64 existe porque alguns canais só transportam texto imprimível: corpo de e-mail, campos de string em JSON, atributos HTML, cabeçalhos HTTP. Ele transforma cada grupo de três bytes em quatro caracteres de um alfabeto de 64 caracteres, e é por isso que a saída é sempre cerca de um terço maior que a entrada. É uma codificação, não uma criptografia: qualquer pessoa pode decodificar sem chave, e o alfabeto é público. Se o conteúdo é secreto, o Base64 não faz nada para protegê-lo, e um token colado em um campo Base64 fica tão exposto depois da codificação quanto antes.
Data URI e alfabeto seguro para URL
Um Data URI envolve os bytes codificados em um prefixo que indica o tipo de mídia, então data:image/png;base64,… pode ser usado diretamente como origem de uma imagem ou como fundo em CSS. Ao codificar um arquivo, o tipo de mídia vem do próprio arquivo; ao codificar texto colado, você o informa. O alfabeto seguro para URL troca + e / por - e _ e remove o preenchimento final, porque esses três caracteres têm significado próprio dentro de uma URL ou de um nome de arquivo. A decodificação aceita qualquer um dos dois alfabetos sem que você precise dizer qual e ignora totalmente as quebras de linha, então strings com quebra MIME ou PEM podem ser coladas como estão.
Erros precisos em vez de resultados sem sentido
Uma string Base64 que tem um caractere fora do alfabeto, ou cujo comprimento deixa resto um na divisão por quatro, não pode ser decodificada em nada que faça sentido. Em vez de devolver bytes truncados, a ferramenta informa a posição do caractere problemático, para que ele possa ser encontrado em uma string longa. Um Data URI com codificação percentual em vez de Base64 é um caso real e confuso, já que os dois começam com data:. A ferramenta identifica uma string assim e indica o decodificador de URL, em vez de lê-la como Base64 e produzir lixo.
Codificado no seu navegador, não em um servidor
A conversão roda inteiramente nesta aba, com funções nativas do próprio navegador, em blocos, para que um arquivo grande não esgote a memória. Nada é enviado, o que importa porque conteúdos em Base64 muitas vezes trazem certificados, chaves e documentos privados.
Perguntas frequentes
Base64 é uma forma de criptografia?
Não. É uma codificação reversível, com alfabeto público e sem chave. Qualquer pessoa que tenha a string consegue recuperar os bytes originais, então ela não protege nada; só permite que dados binários passem com segurança por canais que aceitam apenas texto.
O que é um Data URI?
É uma string que leva junto o tipo de mídia de um arquivo e o conteúdo dele em Base64, como data:image/png;base64,iVBOR… Ela pode ser usada diretamente como origem de uma imagem ou como fundo em CSS, evitando uma requisição de rede separada para um recurso pequeno.
Por que usar o alfabeto seguro para URL?
Porque + e / têm significado dentro de URLs e nomes de arquivo, e = tem papel próprio em query strings. A variante segura para URL usa - e _ no lugar deles e omite o preenchimento, que é o que JWTs e muitas APIs esperam.
Por que o resultado fica um terço maior que a entrada?
Por definição, três bytes viram quatro caracteres, então a saída tem 4/3 do tamanho, antes de qualquer quebra de linha. Esse acréscimo é o preço de usar só caracteres imprimíveis.
Como decodificar para um arquivo em vez de texto?
O modo automático já faz isso: se os bytes decodificados não forem texto UTF-8 válido, você recebe um arquivo. Também é possível forçar a saída em arquivo e definir o nome dele, e a extensão é corrigida pelo tipo de mídia quando um Data URI informa um.
Por que aparece o erro de caractere inválido?
Porque a string tem algo fora do alfabeto Base64, muitas vezes uma aspa perdida ou uma entidade HTML que veio junto na cópia, ou porque ela foi cortada. A posição informada aponta exatamente o caractere que precisa ser conferido.
Meu arquivo é enviado para algum lugar?
Não. A codificação e a decodificação rodam localmente no seu navegador, com funções nativas, sem biblioteca e sem servidor, e nada fica guardado depois que a aba é fechada.