Сообщить об ошибке.

Функции a85encode() и a85encode() модуля base64 в Python

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

Синтаксис:

import base64

base64.a85encode(b, *, foldspaces=False, wrapcol=0, 
                 pad=False, adobe=False)

base64.a85decode(b, *, foldspaces=False, 
                 adobe=False, ignorechars=b' \t\n\r\v')

Параметры:

  • b - байтоподобный объект,
  • foldspaces=False - что использовать вместо 4 последовательных пробелов,
  • wrapcol=0 - управляет символом новой строки b'\\n',
  • pad=False - контролирует, будет ли ввод дополнен кратным 4 до кодирования,
  • adobe=False - управляет обрамлением символами <~ и ~>,
  • ignorechars=b' \t\n\r\v' - символы, которые следует игнорировать из входных данных.

Возвращаемое значение:

Описание:

Функция base64.a85encode() кодирует байтоподобный объект b с помощью Ascii85 и возвращает закодированную байтовую строку.

Аргумент foldspaces - это необязательный флаг, который использует специальную короткую последовательность ‘y’ вместо 4 последовательных пробелов (ASCII 0x20), поддерживаемых 'btoa'. Эта функция не поддерживается "стандартной" кодировкой Ascii85.

Аргумент wrapcol контролирует, должны ли в вывод добавляться символы новой строки b'\\n'. Если это ненулевое значение, каждая строка вывода будет иметь длину не более этого количества символов.

Аргумент pad если равен True, то для ввода добавляется b'\\0', поэтому длина кратна 4 байтам перед кодированием. Обратите внимание, что реализация btoa всегда дополнена.

Аргумент adobe контролирует, будет ли закодированная последовательность байтов обрамлена символами <~ и ~>, который используется реализацией Adobe.

Функция base64.a85decode() расшифровывает/декодирует байтоподобный объект s или строку ASCII, закодированный в Ascii85 байтоподобный объект или строку ASCII b и возвращает декодированную байтовую строку.

Аргумент foldspaces - это необязательный флаг, который использует специальную короткую последовательность ‘y’ вместо 4 последовательных пробелов (ASCII 0x20), поддерживаемых 'btoa'. Эта функция не поддерживается "стандартной" кодировкой Ascii85.

Аргумент adobe контролирует, является ли входная последовательность в формате Adobe Ascii85, то есть обрамлена символами <~ и ~>.

Аргумент Ignorechars должен быть байтовоподобным объектом или строкой ASCII, содержащей символы, которые следует игнорировать из входных данных. Он должен содержать только пробельные символы и по умолчанию содержит все пробельные символы в ASCII.

Примеры использования:

>>> import base64
>>> str = 'Привет Мир!'
# кодируем в байты
>>> str_bytes = str.encode('utf-8')
# кодируем в Ascii85
>>> encoded = base64.a85encode(str_bytes)
>>> encoded
# b"d%A^9d(%H.d'_8Q+OHY*\\C#gM"

# расшифровываем закодированную строку в Ascii85
>>> data = base64.a85decode(encoded)
>>> data.decode('utf-8')
# 'Привет Мир!'