Кодировщик и декодировщик Base85
Base85 упаковывает четыре байта в пять символов ASCII — плотнее, чем соотношение «3 к 4» у Base64, — используя алфавит из 85 символов вместо 64. Вариант Adobe Ascii85 встроен в каждый файл PostScript и PDF; более новый вариант Z85 (ZeroMQ) избегает символов, которые ломаются внутри строк языка C и XML. Этот инструмент кодирует и декодирует оба варианта, с разделителями по выбору.
Как преобразовать Base85
-
1
Выберите вариант
Ascii85 для ресурсов PDF/PostScript; Z85 для исходного кода и сетевых протоколов.
-
2
Вставьте текст или загрузите файл
При кодировании на вход идут необработанные байты; при декодировании — строка Base85.
-
3
Кодировщик разбивает по 4 байта
Каждый блок из 4 байтов превращается в строку Base85 из 5 символов. Последний блок дополняется, а лишние символы в конце отбрасываются.
-
4
Скопируйте результат
Ascii85 при желании оборачивается разделителями `<~` и `~>`; Z85 — без разделителей.
Сравнение прироста размера
| Кодирование | Символов на 4 байта | Прирост к двоичному |
|---|---|---|
| Hex | 8 | +100% |
| Base64 | 5.33 (с дополнением округляется до 8) | +37% |
| Base85 | 5 | +25% |
| Сырые двоичные | 4 | 0 |
Так 1 MB двоичных данных превращается в 1.25 MB в Base85, 1.33 MB в Base64 и 2 MB в hex.
Алфавиты Ascii85 и Z85
Ascii85 (RFC 1924 / Adobe): символы от ! до u (33–117 в ASCII), плюс z как сокращение для 4 нулевых байтов. Используется в потоках PostScript и PDF, оборачивается как <~...~>.
Z85 (ZeroMQ): подмножество, в котором нет кавычек и символов, требующих экранирования.
0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-:+=^!/*?&<>()[]{}@%$#
Его можно безопасно вставлять в JSON, XML, строки языка C и исходный код без экранирования.
Как работает вычисление
Каждые 4 байта читаются как 32-битное целое число N в формате big-endian. Пять выходных символов — это цифры числа N в системе счисления по основанию 85, начиная со старшего разряда. 85^5 = 4 437 053 125, что больше 2^32, поэтому 4 байта всегда умещаются в 5 символов.
Когда важен Ascii85
Откройте любой PDF в текстовом редакторе и найдите ASCII85Decode — Adobe применяет его как фильтр для встроенных изображений и шрифтов, которым нужно пройти через 7-битную передачу (старые системы в духе факса). Z85 широко используется в ключах аутентификации ZeroMQ CURVE.
Особые случаи
- Блок из 4 нулевых байтов — Ascii85 кодирует его одним символом
zвместо!!!!!. - Блок из 4 пробелов — некоторые варианты используют
yдля четырёх пробелов, другие нет. - Последний неполный блок — дополняется нулевыми байтами, а соответствующее число выходных символов отбрасывается в конце.
Часто задаваемые вопросы
По размеру вывода — да, он меньше. По универсальной совместимости — нет. Base85 содержит символы вроде <, >, &, " (в Ascii85), которые приходится экранировать в XML, JSON и URL. Z85 этого избегает, но большинство инструментов изначально работают с Base64.
Ascii85, если вы работаете с файлами PostScript или PDF. Z85 — для исходного кода, файлов конфигурации и сетевых протоколов. Кодирование IPv6 по RFC 1924 — это другое назначение тех же 85 символов, и на практике оно применяется редко.
Нет. У них разные алфавиты. Если декодировать Ascii85 по таблице Z85, получится мусор. Выберите один вариант до кодирования и придерживайтесь его.
Для Adobe Ascii85 в потоках PDF или PostScript — да, они отмечают закодированную область. Для самостоятельного использования и любого вывода Z85 разделители не нужны.
Сопутствующие инструменты
Кодировщик шифра A1Z26
Кодируйте текст шифром A1Z26 (A=1, B=2, ... Z=26) или декодируйте числовую последовательность обратно в буквы, выбрав разделитель.
Шифрование / расшифровка AES
Шифруйте и расшифровывайте текст низкого риска с AES-шифрами OpenSSL. Парольная фраза хэшируется SHA-256, а Base64-вывод содержит IV плюс шифротекст.
Кодировщик шифра Атбаш
Кодируйте или декодируйте текст шифром Атбаш, еврейской заменой, где A-Z отображается в Z-A. Одна и та же операция шифрует и расшифровывает.
Кодировщик и декодировщик Base32
Кодируйте и декодируйте строки Base32 с алфавитом RFC 4648. Полезно для секретов TOTP, регистронезависимых токенов и идентификаторов, которые вводит человек.
Генератор bcrypt
Сгенерируйте bcrypt hash из plaintext password. Настраиваемый cost factor от 4 до 14, совместим с Laravel, Django, Node и PHP.
Генератор bcrypt-хешей
Генерируйте bcrypt-хеши или проверяйте пароль в открытом виде относительно существующего bcrypt-хеша. Генерация и проверка рядом в одном инструменте.