A codificação conhecida como Base64 tem o intuito de converter uma sequência de quaisquer bytes em outra sequência de bytes, contendo apenas alguns bytes específicos, que representam os seguintes caracteres:
a-z
A-Z
0-9
+
/
= (apenas no final)
Como existem 256 bytes possíveis, e a codificação Base64 utiliza apenas 64 desses bytes, as conversões sempre geram mais bytes do que a entrada. Especificamente, três bytes na entrada geram quatro bytes na saída. Caso a divisão não seja exata, "=" são acrescentados ao final para compensar.
A escolha desses bytes/caracteres não foi por acaso... Todos eles são ASCII, aparecem na mesma posição em todos os code pages (exceto nos IBM EBCDIC) e portanto, não correm o risco de falha na interpretação durante transmissões, como por exemplo, entre diferentes servidores Web ou de e-mail.