Зачем в base64 паддинг

Никогда до этого всерьёз не задумывался. Для кодирования в строку он не обязателен. Декодируется из строки тоже однозначно — что с паддингом, что без. Но по умолчанию всегда есть.

Вобщем-то разница появляется когда начинаешь склеивать закодированные строки вместе. Если точнее, когда склеиваемый 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=                  с паддингом