Задать вопрос
  • Base64 - для чего знаки "равно"?

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

    Отбрасывать хвосты нежелательно, т.к. Вы не можете быть уверены, что декодирующий алгоритм примет последний не кратный 4 блок.
    Ответ написан
    1 комментарий