base64.md
1> **Источник:** https://python-all.ru/2.7/library/base64.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# 18.12. [`base64`](https://python-all.ru/2.7/library/base64.html#module-base64) – RFC 3548: кодировки Base16, Base32, Base6489Этот модуль предоставляет кодирование и декодирование данных, как указано в [**RFC 3548**](https://python-all.ru/2.7/library/base64.html). Этот стандарт определяет алгоритмы Base16, Base32 и Base64 для кодирования и декодирования произвольных двоичных строк в текстовые строки, которые можно безопасно отправлять по электронной почте, использовать как части URL или включать в HTTP POST-запросы. Алгоритм кодирования не совпадает с программой **uuencode**.1011Этот модуль предоставляет два интерфейса. Современный интерфейс поддерживает кодирование и декодирование строковых объектов с использованием обоих алфавитов base-64, определённых в [**RFC 3548**](https://python-all.ru/2.7/library/base64.html) (обычного, а также безопасного для URL и файловых систем). Устаревший интерфейс позволяет кодировать и декодировать как из файлоподобных объектов, так и из строк, но только с использованием стандартного алфавита Base64.1213Современный интерфейс, появившийся в Python 2.4, предоставляет:1415#### `base64.b64encode(s[, altchars])`1617Кодирует строку с помощью Base64.1819*s* – это кодируемая строка. Необязательный параметр *altchars* должен быть строкой длиной не менее 2 (дополнительные символы игнорируются), которая задаёт альтернативный алфавит для символов `+` и `/`. Это позволяет, например, генерировать строки Base64, безопасные для URL и файловых систем. По умолчанию используется `None`, для которого применяется стандартный алфавит Base64.2021Возвращает закодированную строку.2223#### `base64.b64decode(s[, altchars])`2425Декодирует строку, закодированную Base64.2627*s* – строка для декодирования. Необязательный параметр *altchars* должен быть строкой длиной не менее 2 (дополнительные символы игнорируются), которая задаёт альтернативный алфавит, используемый вместо символов `+` и `/`.2829Возвращается декодированная строка. Если *s* имеет неправильное дополнение, возбуждается [`TypeError`](https://python-all.ru/2.7/library/exceptions.html#exceptions.TypeError). Символы, не принадлежащие ни обычному алфавиту base-64, ни альтернативному, отбрасываются перед проверкой дополнения.3031#### `base64.standard_b64encode(s)`3233Кодирует строку *s* с использованием стандартного алфавита Base64.3435#### `base64.standard_b64decode(s)`3637Декодирует строку *s* с использованием стандартного алфавита Base64.3839#### `base64.urlsafe_b64encode(s)`4041Кодирует строку *s* с использованием алфавита, безопасного для URL и файловых систем, который заменяет `-` на `+` и `_` на `/` в стандартном алфавите Base64. Результат всё ещё может содержать `=`.4243#### `base64.urlsafe_b64decode(s)`4445Декодирует строку *s* с использованием алфавита, безопасного для URL и файловых систем, который заменяет `-` на `+` и `_` на `/` в стандартном алфавите Base64.4647#### `base64.b32encode(s)`4849Кодирует строку с помощью Base32. *s* – строка для кодирования. Возвращается закодированная строка.5051#### `base64.b32decode(s[, casefold[, map01]])`5253Декодирует строку, закодированную Base32.5455*s* – декодируемая строка. Необязательный флаг *casefold* указывает, допустим ли алфавит в нижнем регистре на входе. В целях безопасности по умолчанию `False`.5657[**RFC 3548**](https://python-all.ru/2.7/library/base64.html) допускает необязательное отображение цифры 0 (ноль) на букву O (о) и необязательное отображение цифры 1 (один) на букву I(ай) или букву L (эл). Необязательный аргумент *map01*, когда он не `None`, указывает, на какую букву должна отображаться цифра 1 (когда *map01* не `None`, цифра 0 всегда отображается на букву O). Из соображений безопасности значением по умолчанию является `None`, поэтому цифры 0 и 1 не допускаются во входных данных.5859Возвращается декодированная строка. Если *s* имеет неправильное дополнение или в строке присутствуют неалфавитные символы, возбуждается [`TypeError`](https://python-all.ru/2.7/library/exceptions.html#exceptions.TypeError).6061#### `base64.b16encode(s)`6263Кодирует строку с помощью Base16.6465*s* – строка для кодирования. Возвращается закодированная строка.6667#### `base64.b16decode(s[, casefold])`6869Декодирует строку, закодированную Base16.7071*s* – декодируемая строка. Необязательный флаг *casefold* указывает, допустим ли алфавит в нижнем регистре на входе. В целях безопасности по умолчанию `False`.7273Возвращается декодированная строка. Если *s* имеет неправильное дополнение или в строке присутствуют неалфавитные символы, возбуждается [`TypeError`](https://python-all.ru/2.7/library/exceptions.html#exceptions.TypeError).7475Устаревший интерфейс:7677#### `base64.decode(input, output)`7879Декодирует содержимое файла *input* и записывает полученные двоичные данные в файл *output*. *input* и *output* должны быть файловыми объектами или объектами, имитирующими интерфейс файлового объекта. *input* будет читаться до тех пор, пока `input.read()` не вернёт пустую строку.8081#### `base64.decodestring(s)`8283Декодирует строку *s*, которая должна содержать одну или несколько строк данных, закодированных в base64, и возвращает строку, содержащую результирующие двоичные данные.8485#### `base64.encode(input, output)`8687Кодирует содержимое файла *input* и записывает полученные данные в кодировке base64 в файл *output*. *input* и *output* должны быть файловыми объектами или объектами, имитирующими интерфейс файлового объекта. *input* будет читаться до тех пор, пока `input.read()` не вернёт пустую строку. [`encode()`](https://python-all.ru/2.7/library/base64.html#base64.encode) возвращает закодированные данные с завершающим символом новой строки (`'\n'`).8889#### `base64.encodestring(s)`9091Кодирует строку *s*, которая может содержать произвольные двоичные данные, и возвращает строку, содержащую одну или несколько строк данных в кодировке base64. [`encodestring()`](https://python-all.ru/2.7/library/base64.html#base64.encodestring) возвращает строку с одной или несколькими строками данных в кодировке base64, всегда включающую дополнительную завершающую новую строку (`'\n'`).9293Пример использования модуля:9495```python96>>> import base6497>>> encoded = base64.b64encode('data to be encoded')98>>> encoded99'ZGF0YSB0byBiZSBlbmNvZGVk'100>>> data = base64.b64decode(encoded)101>>> data102'data to be encoded'103```104105> **См. также**106>107> **Модуль [`binascii`](https://python-all.ru/2.7/library/binascii.html#module-binascii)**108>109> Вспомогательный модуль, содержащий преобразования ASCII-в-двоичный и двоичный-в-ASCII.110>111> **[**RFC 1521**](https://python-all.ru/2.7/library/base64.html) – MIME (Многоцелевые расширения интернет-почты) Часть 1: Механизмы указания и описания формата тел интернет-сообщений**112>113> Раздел 5.2, «Base64 Content-Transfer-Encoding», содержит определение кодировки base64.114