1-no
2- Como respuesta breve: el carácter 65 (signo "=") se usa solo como complemento en el proceso final de codificación de un mensaje.
No tendrá un signo '=' si su cadena tiene un número múltiplo de 3 caracteres, porque la Base64
codificación toma cada tres bytes (8 bits) y los representa como cuatro caracteres imprimibles en el estándar ASCII.
Detalles:
(a) Si quieres codificar
ABCDEFG <=> [ ABC
] [ DEF
] [G
Base64
tratará (produciendo 4 caracteres) con el primer bloque y el segundo (a medida que estén completos) pero para el tercero agregará un doble ==
en la salida para completar los 4 caracteres necesarios. Por lo tanto, el resultado será QUJD REVG Rw == (sin espacio)
(b) Si desea codificar ...
ABCDEFGH <=> [ ABC
] [ DEF
] [GH
Del mismo modo, agregará solo uno =
al final de la salida para obtener 4 caracteres, el resultado será QUJD REVG R0g = (sin espacio)