Codificador e descodificador Base64
Codifica e descodifica Base64 online, com suporte completo de UTF-8 e a opção base64url segura para URL. Tudo no teu navegador, nada é enviado.
Como usar o codificador e descodificador Base64
- Escolhe se queres Codificar texto em Base64 ou Descodificar Base64 de volta para texto.
- Escreve ou cola a tua entrada na caixa de texto. Letras acentuadas, alfabetos não latinos e emojis são todos suportados.
- Se o resultado for usado num URL, num nome de ficheiro ou num JSON Web Token, ativa a opção Seguro para URL (base64url) para obteres a variante base64url.
- Lê o resultado e copia-o. Se estiveres a descodificar e a entrada não for Base64 válido, uma mensagem de erro avisa-te em vez de produzir lixo.
O que é o Base64?
O Base64 é uma forma de representar bytes quaisquer usando apenas 64 caracteres ASCII imprimíveis: as letras maiúsculas A–Z, as minúsculas a–z, os algarismos 0–9 e os dois símbolos + e /. O carácter = serve de enchimento (padding) no fim. Existe porque muitos sistemas foram concebidos para transportar texto e não dados binários em bruto. O corpo dos emails, os cabeçalhos HTTP, os documentos XML e JSON e os data URLs esperam caracteres que sobrevivam a ser copiados, registados e transmitidos sem alterações.
O algoritmo trabalha com grupos de três bytes (24 bits) e divide-os em quatro valores de 6 bits, cada um correspondente a um dos 64 caracteres. É por isso que o resultado em Base64 é sempre cerca de 33 % maior do que a entrada: cada 3 bytes passam a 4 caracteres. Quando o comprimento da entrada não é múltiplo de três, acrescenta-se um ou dois sinais = para que o comprimento do resultado seja múltiplo de quatro. Por exemplo, a palavra Hi fica SGk= e Hello fica SGVsbG8=.
Texto, bytes e UTF-8
O Base64 codifica bytes, não caracteres, por isso o texto tem primeiro de ser convertido em bytes. Esta ferramenta usa UTF-8, a codificação de quase todas as páginas web e APIs modernas. Assim, café dá Y2Fmw6k= e um emoji como 👍 (quatro bytes em UTF-8) é codificado corretamente e volta a dar o mesmo emoji quando é descodificado. Muitos scripts rápidos baseados na antiga função btoa() do navegador falham com tudo o que esteja fora do Latin-1; esta ferramenta não tem essa limitação.
Base64 padrão vs. base64url
O Base64 padrão usa + e /, que têm significados especiais nos URLs e nos caminhos de ficheiros. A variante segura para URL, chamada base64url, substitui + por - e / por _, e normalmente dispensa o enchimento =. É o formato usado nos JSON Web Tokens (JWT), em muitos parâmetros OAuth e nos encurtadores de URL. Ativa a opção Seguro para URL (base64url) quando precisares desse formato e deixa-a desligada para anexos de email, data URLs ou ficheiros de configuração que esperam Base64 padrão.
Base64 não é encriptação
Este é o equívoco mais comum. O Base64 é uma codificação: não tem chave nem segredo, e qualquer pessoa o consegue reverter num instante. Codificar uma palavra-passe, uma chave de API ou dados pessoais em Base64 não os protege de forma nenhuma. A autenticação HTTP Basic, por exemplo, envia utilizador:palavra-passe em Base64, e é por isso que só deve ser usada sobre HTTPS. Se precisas de confidencialidade, usa encriptação a sério (como AES) ou um hash de palavras-passe (como Argon2 ou bcrypt), não Base64.
Privacidade
Toda a codificação e descodificação acontece localmente no teu navegador, em JavaScript. O texto que introduzes nunca é enviado para um servidor, guardado ou registado, por isso podes inspecionar tokens ou valores de configuração em segurança. Esta ferramenta trabalha apenas com texto; não aceita ficheiros.
Perguntas frequentes
Porque é que o texto descodificado parece um monte de símbolos aleatórios?
Provavelmente, a string Base64 representa dados binários, como uma imagem, um ficheiro comprimido ou conteúdo encriptado, e não texto. A descodificação produz bytes válidos, mas que não formam texto UTF-8 com sentido. Também pode acontecer se o texto original tiver sido codificado com um conjunto de caracteres diferente do UTF-8.
Porque é que a ferramenta diz que o meu Base64 é inválido?
Um Base64 válido contém apenas os 64 caracteres permitidos, mais o enchimento = opcional, e o seu comprimento tem de encaixar nos grupos de 4 caracteres. As causas mais comuns são caracteres copiados por engano, uma string cortada ou uma string base64url (com - e _) descodificada sem a opção Seguro para URL (base64url) ativada.
Posso codificar imagens ou outros ficheiros?
Não. Esta ferramenta foi pensada apenas para texto. Para incorporar uma imagem em HTML ou CSS precisas de uma ferramenta que leia os bytes em bruto do ficheiro e produza um data URL.
O Base64 é seguro para guardar palavras-passe?
Não. Qualquer pessoa descodifica Base64 numa fração de segundo. As palavras-passe devem ser guardadas com um algoritmo de hash lento e próprio para o efeito, como Argon2, scrypt ou bcrypt.
Qual é a diferença entre Base64 com e sem enchimento?
O enchimento com = serve apenas para tornar o comprimento do resultado múltiplo de quatro; não contém informação. A maioria dos descodificadores consegue reconstruir os dados sem ele. O base64url costuma omitir o enchimento porque o próprio = é um carácter reservado nos URLs.
Ferramentas relacionadas
- Codificador e descodificador de URL Codificador e descodificador de URL gratuito. Codifica parâmetros ou URLs completos, descodifica sequências %XX e trata + como espaço, no navegador.
- Formatador e validador de JSON Formatador e validador de JSON gratuito que formata, minifica e verifica JSON no teu navegador, com os erros de sintaxe indicados por linha e coluna.
- Gerador de UUID Gerador de UUID gratuito para as versões 4 e 7. Cria até 1000 de uma vez, em maiúsculas ou sem hífenes, e copia-os ou transfere-os num ficheiro .txt.