Base64 – это группа похожих схем преобразования двоичного кода в текст, которые представляют двоичные данные в формате строки ASCII путем преобразования их в представление по основанию 64. Термин Base64 происходит от конкретной кодировки передачи контента MIME.
Схемы кодирования Base64 обычно используются, когда необходимо кодировать двоичные данные, которые необходимо хранить и передавать через носители, предназначенные для работы с текстовыми данными. Это делается для того, чтобы данные оставались неповрежденными без изменений во время транспортировки. Base64 обычно используется в ряде приложений, включая электронную почту через MIME и хранение сложных данных в XML.
В JavaScript есть две функции соответственно для декодирования и кодирования строк base64:
Функция atob()
декодирует строку данных, закодированную с использованием кодировки base-64. И наоборот, функция btoa()
создает строку ASCII в кодировке base-64 из «строки» двоичных данных.
И atob()
, и btoa()
работают со строками. Если вы хотите работать над ArrayBuffers
, пожалуйста, прочтите этот абзац.
Закодированное увеличение размера
Каждая цифра Base64 представляет ровно 6 бит данных. Таким образом, три 8-битных байта входной строки/двоичного файла (3×8 бит = 24 бита) могут быть представлены четырьмя 6-битными цифрами Base64 (4×6 = 24 бита).
Это означает, что версия строки или файла в формате Base64 будет иметь не более 133 % размера исходного кода (увеличение примерно на 33 %). Увеличение может быть больше, если закодированные данные малы. Например, строка "a"
с length === 1
кодируется как "YQ=="
с length === 4
— увеличение на 300%.