Base64 — позиційна система числення з основою 64 друкованих символів ASCII (American Standard Code for Information Interchange). Система застосовується, наприклад, для представлення бінарних файлів електронною поштою. Всі варіанти Base64 використовують символи A-Z, a-z і 0-9, всього 62 знаки, відсутні два знаки в системах реалізації, замінені різними символами. Кожні три вихідні байти кодуються чотирма символами.
Історія Base64
Спочатку електронною поштою можна було передавати лише текст (RFC 822). Згодом разом із текстом потрібно було передавати аудіо-, відео- та графічні файли, програми тощо. буд. Виникла необхідність перетворювати двійковий файл на текстовий. До UUE-кодування (Uuencode), що вже існувало тоді, додався Base64, який використовується в специфікації MIME (Multipurpose Internet Mail Extensions) (RFC 2045-2049).
MIME є стандартом опису заголовків в електронних повідомленнях. Його застосування дозволяє відправляти кілька вкладень в одному листі, наприклад, архівовані та текстові файли або HTML-сторінки. Поштова програма, яка розуміє MIME, вільно витягує архів із текстового файлу, показує повідомлення та обробляє теги HTML. Наприклад, Outlook Express самостійно запускає скрипти, вкладені в HTML-сторінку.
Base64 зародився в еру семи-, шести-і трибітних байтів. Старі кодування не підтримували восьмибітний стандарт, тому частина інформації втрачалася при переносі зі старої системи в нову. Нерідко при надсиланні листів поштовий сервер скидав зайвий, восьмий, біт або не передавав відео та зображення. Для усунення подібних неприємностей були розроблені кодування перетворення двійкового коду в текст. Найпопулярніша та найефективніша система — Base64, завдяки простоті вона використовується повсюдно.
Алгоритм під назвою «кодування для друку» був вперше описаний в 1987 році, Base64 з'явився в червні 1992 року. Версії даної системи: Base16, Base32, Base36, Base58, Base85, Base91 та Base122. Пізніші стандарти активно використовуються в IT-сфері.
Цікавий факт
Для кодування URL у деяких системах використовується Base58, що відрізняється від Base64 відсутністю в кінцевому тексті символів, які можуть сприйматися людиною неоднозначно. Виключені 0 (нуль), O (велика латинська o), I (велика латинська i), l (маленька латинська L). Також виключені символи + (плюс) та / (коса риса), які при кодуванні URL можуть призводити до невірної інтерпретації адреси.
Base64 забезпечує оборотне кодування з можливістю відновлення. Сервіс переводить символи восьмибітної кодової таблиці в символи, що зберігаються при передачі інформації в мережах та між пристроями.