0

Декодировано

Ascii85

Закодировано

Ascii85
Вариант

О Ascii85

Ascii85 - это схема кодирования с использованием 7-битных печатных символов ASCII, также известная как Base85.

Ascii85 делит данные на четыре байта каждый, которые затем преобразуются в пять символов ASCII.

Существует множество различных вариантов Ascii85, и DenCode поддерживает следующие три типа Ascii85. Первоначально был btoa, затем Adobe и Z85.

Резюме
Z85Используется в ZeroMQ. "\" (обратная косая черта) и "'" (апостроф) символы, требующие экранирования, не используются.
AdobeОн используется для кодирования изображений и других данных в файлах Adobe PostScript и PDF (Portable Document Format). Он заключен в "<~" и "~>".
btoaФорма команды UNIX btoa. В прошлом он использовался для обмена двоичными данными, но сейчас уже не распространен. Охватывается линиями "xbtoa Начало" и "xbtoa Конец".

Символы ASCII, используемые в Ascii85, следующие: рассматривайте 4-байтовое значение как big-endian беззнаковое целое число, вычислите каждую из 85 десятичных цифр (5 разрядов) этого значения, а затем найдите результат преобразования Ascii85 на основе следующих символов ASCII

ASCII символы
Z850123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-:+=^!/*?&<>()[]{}@%$#
Adobe!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstu
btoa!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstu
(Первоначально это были символы " " (пробел) - "t", но поскольку некоторые почтовые службы исключали пробелы, позже они были заменены символами "!" до "u", исключая пробелы.)

Например, если вы преобразуете "Hello" с помощью Ascii85, вы получите следующее.

1. Разделяйте каждые 4 байта; если меньше 4 байт, заканчивайте "00" для подстановки.

48656C6C(16) 6F000000(16)  (Hell o)

2. Каждые четыре байта рассматриваются как беззнаковое целое число big-endian, и значение преобразуется в каждую цифру 85 десятичной системы.

48656C6C(16)
= 1214606444(10)
= 23 * 854 + 22 * 853 + 66 * 852 + 52 * 85 + 49
6F000000(16)
= 1862270976(10)
= 35 * 854 + 57 * 853 + 33 * 852 + 65 * 85 + 26

3. Преобразуйте каждую цифру 85 десятичной системы в символ ASCII. Если в конце стоит "00", то для Adobe/Z85 это исключено.

23226652493557336526
Z85nm=QNzV
Adobe87cURDZ
btoa87cURDZBb;

4. Все символы объединяются в результат преобразования Ascii85; Adobe заключен в "<~" и "~>", с новой строкой через каждые 80 символов; btoa заключен в "xbtoa Begin" и "xbtoa End" (включая длину данных и контрольную сумму), с новой строкой через каждые 78 символов.

Результаты конверсии
Z85nm=QNzV
Adobe<~87cURDZ~>
btoaxbtoa Begin
87cURDZBb;
xbtoa End N 5 5 E 42 S 1f9 R a9f

Определены и некоторые другие сокращения.

Cокращения
Z85Нет
Adobe00000000(16) -> z
btoa00000000(16) -> z
20202020(16) -> y (btoa v4.2 или более поздняя версия)