base64 — RFC 3548: Кодировки данных Base16, Base32, Base64
Этот модуль предоставляет кодирование и декодирование данных, как указано в RFC 3548. Этот стандарт определяет алгоритмы Base16, Base32 и Base64 для кодирования и декодирования произвольных двоичных строк в текстовые строки, которые можно безопасно отправлять по электронной почте, использовать в качестве частей URL или включать в качестве части запроса HTTP POST. Алгоритм кодирования отличается от программы uuencode.
Этот модуль предоставляет два интерфейса. Современный интерфейс поддерживает кодирование и декодирование строковых объектов с использованием обоих алфавитов Base-64, определённых в RFC 3548 (обычный, и безопасный для URL и файловой системы). Легасный интерфейс обеспечивает кодирование и декодирование в и из объектов, подобных файлам, а также строк, но только с использованием стандартного алфавита Base64.
Современный интерфейс, который был введён в Python 2.4, предоставляет:
-
base64.b64encode(s[, altchars]) -
Кодирование строки с использованием Base64.
s — строка для кодирования. Необязательные altchars должны быть строкой длиной не менее 2 (дополнительные символы игнорируются), которая определяет альтернативный алфавит для символов
+и/. Это позволяет приложению, например, генерировать безопасные для URL или файловой системы строки Base64. По умолчанию используетсяNone, для которого используется стандартный алфавит Base64.Возвращается закодированная строка.
-
base64.b64decode(s[, altchars]) -
Декодирование закодированной в Base64 строки.
s — строка для декодирования. Необязательные altchars должны быть строкой длиной не менее 2 (дополнительные символы игнорируются), которая определяет альтернативный алфавит, используемый вместо символов
+и/.Возвращается декодированная строка.
TypeErrorгенерируется, если s неверно дополнена. Символы, которые не являются ни в обычном алфавите base-64, ни в альтернативном алфавите, отбрасываются до проверки дополнения.
-
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'
См. также
-
Modulebinascii -
Модуль поддержки, содержащий преобразования ASCII-в-двоичное и двоичное-в-ASCII.
- RFC 1521 - MIME (Многоцелевые расширения Интернет-почты) Часть первая: Механизмы для указания и описания формата тел сообщений Интернет-почты
-
Раздел 5.2, «Base64 Content-Transfer-Encoding», предоставляет определение кодирования base64.
© 2001–2020 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/2.7/library/base64.html