Источник: Nuances of Programming Практически каждый разработчик так или иначе использует base64. Но каков механизм работы этого алгоритма? Я считаю, что самый простой способ по-настоящему понять, как работает этот алгоритм, — попытаться реализовать его. Этим и займёмся. Сам алгоритм base64 определяется в RFC 4648. Идея предельно проста: любые входные данные можно представить как битовый поток. Биты разбиваются на байты и группируются по восемь. В base64 происходит то же самое, только биты группируются по 6. Потом с помощью специальной таблицы каждое значение преобразуется в символы a-z, A-Z, 0-9 и + /. Затем в качестве заполнения используется символ =. Но не будем забегать вперёд. Начнём с определения интерфейса функции base64 для кодирования и написания первого теста. Только будем реализовывать base64 для строк, а не для байтовых потоков. Вот как выглядит первый тест: Здесь функция кодирования принимает &str и кодирует строку. Разделение битов на группы по 6 Сначала перегруппируем ба