Xxencode

Перейти к навигацииПерейти к поиску

Xxencode — метод представления двоичных данных в текстовой форме, похожий на UUE, однако использует только буквы, числа а также минусы и плюсы. Он был создан для передачи файлов в формате, который сможет работать после перевода таблицы символов, особенно между ASCII и EBCDIC, используемые IBM-процессорами.[1] Формат текстовых файлов с зашифрованной Xxencode-информацией зачастую имеют расширение .XXE.

Кодирование

Данные в формате Xxencode начинаются со строки begin <mode> <file>, где mode — Unix-права доступа к файлу в восьмеричной системе счисления (для DOS-/Windows-приложений это число всегда 644), а file — имя исходного файла.

Xxencode создаёт группы из трёх байт и добавляет нули в конце, если осталось меньше трёх байт. Эти 24 бита соединяются в 6-битные числа, каждое из которых позже переводиться в -ный символ в данной таблице:

            1         2         3         4         5         6
  0123456789012345678901234567890123456789012345678901234567890123
  |         |         |         |         |         |         |
  +-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz

Каждая группа из 60 символов (соответствует 45 байтам исходного файла) используется для создания отдельной строки. Каждая из них завершается символом перевода строки (\n или \n\r в зависимости от платформы).

Данные, закодированные при помощи Xxencode можно отличить от тех, что закодированы UUE-методом по первому символу в строке ('h' у Xxencode, 'M' у UUE). Это касается, как минимум, одной полноразмерной строки (45 зашифрованных байтов/60 символов).

Пример кодирования

Ниже приведен пример зашифровки однострокового .txt-файла при помощи Xxencode:

Исходные данные
 Название файла = xxe-info.txt
 Содержание файла = https://ru.wikipedia.org/wiki/Xxencode
Xxencode
 begin 644 xxe-info.txt
 aO5FoQ5Au9mxmRGtrOKhdQ4JYOK2iPr7b9rRdOqYjK5VZPaBjN4I+
 end

Ссылки

Примечания

  1. Тони Кэтон. Keys to the kingdom: Unlocking Internet file formats. University of Pennsylvania (февраль 1995). Дата обращения: 11 октября 2019. Архивировано 3 марта 2016 года.