Документация Python неофициальный перевод

base64 – RFC 3548: кодировки данных Base16, Base32, Base64base64 – RFC 3548: Base16, Base32, Base64 Data Encodings

Этот модуль предоставляет кодирование и декодирование данных, как указано в RFC 3548. Этот стандарт определяет алгоритмы Base16, Base32 и Base64 для кодирования и декодирования произвольных двоичных строк в текстовые строки, которые можно безопасно отправлять по электронной почте, использовать как части URL или включать в HTTP POST-запросы. Алгоритм кодирования не совпадает с программой uuencode.

Этот модуль предоставляет два интерфейса. Современный интерфейс поддерживает кодирование и декодирование строковых объектов с использованием всех трёх алфавитов. Устаревший интерфейс обеспечивает кодирование и декодирование как для файловых объектов, так и для строк, но только с использованием стандартного алфавита Base64.

Современный интерфейс предоставляет:

base64.b64encode(s[, altchars])

Кодирует строку с помощью Base64.

s – строка для кодирования. Необязательный аргумент altchars должен быть строкой длиной не менее 2 (дополнительные символы игнорируются), которая задаёт альтернативный алфавит для символов + и /. Это позволяет, например, генерировать строки Base64, безопасные для URL или файловой системы. По умолчанию используется None, при этом применяется стандартный алфавит Base64.

Возвращает закодированную строку.

base64.b64decode(s[, altchars])

Декодирует строку, закодированную Base64.

s – строка для декодирования. Необязательный параметр altchars должен быть строкой длиной не менее 2 (дополнительные символы игнорируются), которая задаёт альтернативный алфавит, используемый вместо символов + и /.

Возвращается декодированная строка. Исключение TypeError возникает, если s имеет неправильное дополнение или содержит символы, не входящие в алфавит.

base64.standard_b64encode(s)
Кодирует строку s с использованием стандартного алфавита Base64.
base64.standard_b64decode(s)
Декодирует строку s с использованием стандартного алфавита Base64.
base64.urlsafe_b64encode(s)
Кодирует строку s с использованием URL-безопасного алфавита, который заменяет + на -, а / на _ в стандартном алфавите Base64.
base64.urlsafe_b64decode(s)
Декодирует строку s с использованием URL-безопасного алфавита, который заменяет + на -, а / на _ в стандартном алфавите Base64.
base64.b32encode(s)
Кодирует строку с помощью Base32. s – строка для кодирования. Возвращается закодированная строка.
base64.b32decode(s[, casefold[, map01]])

Декодирует строку, закодированную Base32.

s – декодируемая строка. Необязательный параметр casefold – флаг, указывающий, допустим ли алфавит в нижнем регистре на входе. Из соображений безопасности по умолчанию False.

RFC 3548 допускает необязательное отображение цифры 0 (ноль) на букву O (о) и необязательное отображение цифры 1 (один) на букву I (ай) или букву L (эл). Необязательный аргумент map01, если он не равен None, указывает, на какую букву должна отображаться цифра 1 (когда map01 не равен None, цифра 0 всегда отображается на букву O). В целях безопасности по умолчанию используется None, чтобы 0 и 1 не допускались во входных данных.

Возвращается декодированная строка. Исключение TypeError возникает, если s имеет неправильное дополнение или содержит символы, не входящие в алфавит.

base64.b16encode(s)

Кодирует строку с помощью Base16.

s – строка для кодирования. Возвращается закодированная строка.

base64.b16decode(s[, casefold])

Декодирует строку, закодированную Base16.

s – декодируемая строка. Необязательный параметр casefold – флаг, указывающий, допустим ли алфавит в нижнем регистре на входе. Из соображений безопасности по умолчанию False.

Возвращается декодированная строка. Исключение TypeError возникает, если s имеет неправильное дополнение или содержит символы, не входящие в алфавит.

Устаревший интерфейс:

base64.decode(input, output)
Декодирует содержимое файла input и записывает полученные двоичные данные в файл output. input и output должны быть файловыми объектами или объектами, имитирующими интерфейс файлового объекта. input будет читаться до тех пор, пока input.read() не вернёт пустую строку.
base64.decodestring(s)
Декодирует строку s, которая должна содержать одну или несколько строк данных, закодированных в base64, и возвращает строку, содержащую результирующие двоичные данные.
base64.encode(input, output)
Кодирует содержимое файла input и записывает полученные данные, закодированные в base64, в файл output. input и output должны быть файловыми объектами или объектами, имитирующими интерфейс файлового объекта. input считывается до тех пор, пока input.read() не вернёт пустую строку. encode() возвращает закодированные данные с завершающим символом новой строки ('\n').
base64.encodestring(s)
Кодирует строку s, которая может содержать произвольные двоичные данные, и возвращает строку, содержащую одну или несколько строк данных, закодированных в base64. encodestring() возвращает строку, содержащую одну или несколько строк данных, закодированных в base64, всегда включая дополнительный завершающий символ новой строки ('\n').

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

>>> import base64
>>> encoded = base64.b64encode('data to be encoded')
>>> encoded
'ZGF0YSB0byBiZSBlbmNvZGVk'
>>> data = base64.b64decode(encoded)
>>> data
'data to be encoded'

См. также

Модуль binascii
Вспомогательный модуль, содержащий преобразования ASCII-в-двоичный и двоичный-в-ASCII.
RFC 1521 – MIME (Многоцелевые расширения интернет-почты) Часть 1: Механизмы указания и описания формата тел интернет-сообщений
Раздел 5.2, «Base64 Content-Transfer-Encoding», содержит определение кодировки base64.