Base64 конвертирует блоками по 3 байта (создавая коды по 4 байта) :
- если длина исходного блока была кратна 3, то он закодируется нацело и знаков "=" не будет
- если длина исходного блока имела остаток 1 от деления на 3, то он закодируется в 2 байта (6 бит + 2 бита), и чтобы итоговый код был длиной кратен 4, будет в конце дописано "=="
- если длина исходного блока имела остаток 2 от деления на 3, то он закодируется в 3 байта (6 бит + 6 бит + 4 бита), и чтобы итоговый код был длиной кратен 4, будет в конце дописано "=".
Отбрасывать хвосты нежелательно, т.к. Вы не можете быть уверены, что декодирующий алгоритм примет последний не кратный 4 блок.