1-Não
2- Como resposta curta: O 65º caractere (sinal "=") é usado apenas como complemento no processo final de codificação de uma mensagem.
Você não terá um sinal de '=' se a sua string tiver um número múltiplo de 3 caracteres, porque a Base64
codificação usa cada três bytes (8 bits) e os representa como quatro caracteres imprimíveis no padrão ASCII.
Detalhes:
(a) Se você deseja codificar
ABCDEFG <=> [ ABC
] [ DEF
] [G
Base64
lidará (produzindo 4 caracteres) com o primeiro bloco e o segundo (à medida que estiverem completos), mas, para o terceiro, adicionará um dobro ==
na saída para concluir os 4 caracteres necessários. Assim, o resultado será QUJD REVG Rw == (sem espaço)
(b) Se você deseja codificar ...
ABCDEFGH <=> [ ABC
] [ DEF
] [GH
Da mesma forma, ele adicionará apenas um =
no final da saída para obter 4 caracteres, o resultado será QUJD REVG R0g = (sem espaço)