Никогда до этого всерьёз не задумывался. Для кодирования в строку он не обязателен. Декодируется из строки тоже однозначно — что с паддингом, что без. Но по умолчанию всегда есть.
Вобщем-то разница появляется когда начинаешь склеивать закодированные строки вместе. Если точнее, когда склеиваемый b64-элемент не кратен 4 байтам — вот тогда паддинг становится совсем обязательным.
Кстати, пример паддинга:
Input: H i 2 символа ascii
Binary: 01001000 01101001 2 x 8 бит
-----------------------------------------------
Sixlets: 010010 000110 100100 3 x 6 бит
Base64: S G k без паддинга
Base64: SGk= с паддингом
2024.04.19 in algorithms