O que é codificação Base64?
A codificação Base64 é uma forma de converter dados (geralmente binários) no conjunto de caracteres ASCII. É importante mencionar que Base64 não é uma técnica de criptografia ou compressão, embora às vezes possa ser confundida com criptografia pela forma como parece ofuscar os dados. Na verdade, o tamanho de uma informação codificada em Base64 é 1,3333 vezes o tamanho original dos dados.
Base64 é a técnica de codificação base mais usada, com Base16 e Base32 sendo os outros dois esquemas comuns.
A codificação Base64 é uma das formas mais comuns de converter dados binários em texto ASCII puro. É um formato muito útil para comunicação entre sistemas que não lidam facilmente com dados binários, como imagens em markup HTML ou requisições web.
Como funciona o Base64?
Converter dados para Base64 é um processo de várias etapas. Veja como funciona para strings de texto:
- Calcular a versão binária de 8 bits do texto de entrada
- Reagrupar a versão de 8 bits em blocos de 6 bits
- Encontrar a versão decimal de cada bloco binário de 6 bits
- Encontrar o símbolo Base64 para cada valor decimal usando uma tabela de consulta
| Valor | Caractere | Valor | Caractere |
|---|---|---|---|
| 0 | A | 32 | g |
| 1 | B | 33 | h |
| 2 | C | 34 | i |
| 3 | D | 35 | j |
| 4 | E | 36 | k |
| 5 | F | 37 | l |
| 6 | G | 38 | m |
| 7 | H | 39 | n |
| 8 | I | 40 | o |
| 9 | J | 41 | p |
| 10 | K | 42 | q |
| 11 | L | 43 | r |
| 12 | M | 44 | s |
| 13 | N | 45 | t |
| 14 | O | 46 | u |
| 15 | P | 47 | v |
| 16 | Q | 48 | w |
| 17 | R | 49 | x |
| 18 | S | 50 | y |
| 19 | T | 51 | z |
| 20 | U | 52 | 0 |
| 21 | V | 53 | 1 |
| 22 | W | 54 | 2 |
| 23 | X | 55 | 3 |
| 24 | Y | 56 | 4 |
| 25 | Z | 57 | 5 |
| 26 | a | 58 | 6 |
| 27 | b | 59 | 7 |
| 28 | c | 60 | 8 |
| 29 | d | 61 | 9 |
| 30 | e | 62 | + |
| 31 | f | 63 | / |
Por que usar codificação Base64?
Enviar informações em formato binário pode ser arriscado, pois nem todos os aplicativos ou sistemas de rede lidam com dados binários brutos. Por outro lado, o conjunto de caracteres ASCII é amplamente conhecido e muito simples de processar para a maioria dos sistemas.
Por exemplo, servidores de email esperam dados textuais, então ASCII é tipicamente usado. Portanto, se você quiser enviar imagens ou qualquer outro arquivo binário para um servidor de email, primeiro precisa codificá-lo em formato baseado em texto, preferencialmente ASCII. É aí que a codificação Base64 se torna extremamente útil.
Casos de uso comuns do Base64
Você também pode usar Base64 para representar dados binários de forma compatível com HTML, JavaScript e CSS. Por exemplo, é possível incorporar uma imagem inline em um arquivo CSS ou JavaScript usando Base64.
É possível usar Base64 para converter dados de formulário ou JSON em uma string com um conjunto reduzido de caracteres seguro para URLs. No entanto, devido à forma como certos servidores podem interpretar os caracteres + e /, recomenda-se usar encodeURIComponent.
Limitações do Base64
Base64 não é, de forma alguma, um método seguro de criptografia.
Base64 também não é um método de compressão. Codificar uma string em Base64 geralmente resulta em uma saída 33% maior.