Como usar
- Digite ou cole o texto a ser codificado, mude a entrada para Hex para codificar bytes brutos ou clique em Abrir arquivo para codificar um arquivo.
- Deixe Codificação de texto em UTF-8, a menos que o sistema de destino espere outro conjunto de caracteres.
- Defina as opções: mantenha a variante Padrão na maioria dos casos, desative o Preenchimento se o destinatário não o quiser e ajuste a Quebra de linha para 76 (MIME) ou 64 (PEM) caracteres quando necessário.
- Copie a saída em Base64 ou baixe-a como arquivo.
Como funciona a codificação Base64
O codificador lê a entrada de três em três bytes. Esses 24 bits são divididos em quatro grupos de 6 bits, e cada valor de 6 bits (de 0 a 63) seleciona um caractere: A-Z para 0 a 25, a-z para 26 a 51, 0-9 para 52 a 61 e, por fim, + e /. Entram três bytes e saem quatro caracteres, e é por isso que o Base64 fica cerca de 33% maior que os dados originais.
Texto M a n
Bytes 77 97 110
Binário 01001101 01100001 01101110
6 bits 010011 010110 000101 101110
Índice 19 22 5 46
Base64 T W F u
Preenchimento e comprimento da saída
Quando o comprimento da entrada não é múltiplo de três, o último grupo fica incompleto. Um byte restante vira dois caracteres seguidos de ==; dois bytes restantes viram três caracteres e um =. Por isso, a saída com preenchimento sempre tem 4 × ceil(n / 3) caracteres para n bytes de entrada.
O preenchimento não carrega dados. JSON Web Tokens, parâmetros de URL e muitas APIs o omitem, então desative o preenchimento quando o lado receptor esperar uma saída sem ele. Para links e nomes de arquivo, escolha a variante segura para URL ou use a página Base64URL; as duas substituem + e / por - e _.
Quebra de linha para MIME e PEM
Por padrão, a saída é uma única linha longa, que é o que JSON, data URIs e cabeçalhos HTTP exigem. Dois formatos esperam quebras de linha:
- MIME, 76 caracteres. Anexos de e-mail enviados com
Content-Transfer-Encoding: base64não podem ter linhas com mais de 76 caracteres (RFC 2045). Esta opção termina as linhas com CRLF, como o MIME exige. - PEM, 64 caracteres. Certificados e chaves entre as linhas
-----BEGINe-----ENDusam linhas de 64 caracteres (RFC 7468). Esta opção usa finais de linha LF.
Conjuntos de caracteres e arquivos
O Base64 codifica bytes, não letras, então o texto é primeiro convertido em bytes por meio de um conjunto de caracteres. A letra é ocupa dois bytes em UTF-8, mas um único byte em ISO-8859-1 ou Windows-1252, de modo que o mesmo texto gera um Base64 diferente. O UTF-8 é a escolha certa para a web, para JSON e para quase todas as APIs modernas; escolha GBK, Shift_JIS, Windows-1251 ou outro conjunto de caracteres apenas para se adequar a um sistema legado.
Os arquivos são codificados exatamente como estão armazenados, sem nenhuma conversão de conjunto de caracteres. Para imagens com trechos de HTML e CSS prontos, veja Imagem para Base64; para um data URI com o tipo MIME detectado, use Arquivo para Base64.
Especificação
| Alfabeto | A-Z a-z 0-9 + / |
|---|---|
| Tamanho da saída | 4 caracteres a cada 3 bytes (cerca de 133%) |
| Preenchimento | Com = até um múltiplo de 4 caracteres |
| Padrão | RFC 4648, seção 4 |
| Diferencia maiúsculas e minúsculas | Sim |
Exemplos
| Entrada (UTF-8) | Saída |
|---|---|
Hello, World! | SGVsbG8sIFdvcmxkIQ== |
Base64.is | QmFzZTY0Lmlz |
你好 | 5L2g5aW9 |
Perguntas frequentes
Por que minha saída em Base64 é diferente da de outro codificador?
echo adiciona uma; use printf '%s' ou echo -n), um conjunto de caracteres diferente, finais de linha do Windows no texto ou configurações diferentes de preenchimento, alfabeto ou quebra de linha. Os mesmos bytes com as mesmas opções sempre geram a mesma saída.Como codificar texto Unicode em Base64 no JavaScript?
btoa() só aceita caracteres até U+00FF e lança um erro para qualquer outro. Converta a string primeiro em bytes UTF-8, por exemplo btoa(String.fromCharCode(...new TextEncoder().encode(str))). No Node.js, use Buffer.from(str, 'utf8').toString('base64').Como codificar em Base64 na linha de comando?
printf '%s' 'your text' | base64 no Linux ou no macOS. O base64 do GNU quebra a saída a cada 76 caracteres por padrão (adicione -w 0 para obter uma única linha), e o openssl base64 quebra a cada 64 (adicione -A).A codificação Base64 é uma forma de criptografia?
Quanto o Base64 aumenta o tamanho dos meus dados?
Cada 3 bytes viram 4 caracteres, arredondando para um grupo completo, então a saída fica cerca de 33% maior. A quebra de linha MIME adiciona mais dois bytes (CRLF) a cada 76 caracteres.