UTILS.
100% в браузере
🔠

Кодирование и декодирование Ascii85 / Base85

Кодируйте байты в Ascii85/Base85 и декодируйте их обратно с поддержкой стандартного и Adobe (<~ ~>) вариантов — полностью в браузере.

— результат появится здесь —

Об этом инструменте

Инструмент Ascii85 / Base85 преобразует двоичные данные в Ascii85 (также называемый Base85) и обратно — это текстовая кодировка, упаковывающая четыре байта в пять печатных символов, что примерно на 25% компактнее Base64. Она используется в потоках PostScript и PDF (вариант Adobe) и в форматах патчей/диффов. Всё выполняется локально в вашем браузере с помощью TextEncoder/TextDecoder; ничего из вставленного вами не загружается на сервер.

При кодировании ввод обрабатывается как 4-байтовые группы с порядком big-endian, каждая группа читается как 32-битное беззнаковое целое, и выводится пять цифр путём многократного взятия значения по модулю 85 и добавления 33, так что каждая цифра попадает в печатный диапазон от '!' (33) до 'u' (117). Группа из одних нулей сворачивается в единственный символ 'z'. Финальная неполная группа из n байтов (1–3) дополняется нулями до четырёх, кодируется, а последние 4−n выходных символа отбрасываются, давая n+1 символ. Вариант Adobe оборачивает результат в '<~' и '~>'.

Декодирование обращает процесс: пробелы и любая обёртка удаляются, 'z' разворачивается в четыре нулевых байта, пятисимвольные группы читаются как value = Σ (cᵢ−33)·85^(4−i) и записываются как четыре байта big-endian, а завершающая неполная группа из m символов (2–5) дополняется 'u' (значение 84) и сохраняет m−1 байт. Выберите направление, стандартный или Adobe вариант, и являются ли входные байты текстом UTF-8 или hex.

Часто задаваемые вопросы

Что за сокращение 'z'?
Группа из четырёх нулевых байтов (0x00000000) закодировалась бы как '!!!!!'. Вместо этого Ascii85 выводит для неё единственный символ 'z' как сокращение сжатия. При декодировании 'z' разворачивается обратно в четыре нулевых байта — но только когда он находится на границе группы, никогда в середине пятисимвольной группы.
Чем Ascii85 отличается от Base64?
Base64 кодирует 3 байта в 4 символа (накладные расходы 33%); Ascii85 кодирует 4 байта в 5 символов (накладные расходы 25%), поэтому он компактнее. Base64 использует алфавит из 64 символов, тогда как Ascii85 использует 85 печатных ASCII-символов от '!' до 'u'.
Что такое вариант Adobe?
Ascii85 от Adobe, используемый в PostScript и PDF, оборачивает полезную нагрузку между разделителями '<~' и '~>'. Основной алгоритм идентичен. Выбор варианта Adobe добавляет эти маркеры при кодировании и удаляет их при декодировании; стандартный вариант их опускает.
Загружаются ли мои данные куда-либо?
Нет. Кодирование и декодирование происходят полностью в вашем браузере с помощью обычного JavaScript и TextEncoder/TextDecoder. Ничего не отправляется на сервер, поэтому вы можете безопасно обрабатывать приватные или двоичные данные.

Больше инструментов