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

base64.md

238 строк · 10.7 КБ · обычная страница · сырой текст · скачать

1> **Источник:** https://python-all.ru/3.0/library/base64.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# `base64` – RFC 3548: кодировки данных Base16, Base32, Base6489Этот модуль предоставляет кодирование и декодирование данных, как указано в [**RFC 3548**](https://python-all.ru/3.0/library/base64.html). Этот стандарт определяет алгоритмы Base16, Base32 и Base64 для кодирования и декодирования произвольных двоичных строк в текстовые строки, которые можно безопасно отправлять по электронной почте, использовать как части URL или включать в HTTP POST-запросы. Алгоритм кодирования не совпадает с программой **uuencode**.1011Этот модуль предоставляет два интерфейса. Современный интерфейс поддерживает кодирование и декодирование строковых объектов с использованием всех трёх алфавитов. Устаревший интерфейс обеспечивает кодирование и декодирование как для файловых объектов, так и для строк, но только с использованием стандартного алфавита Base64.1213Современный интерфейс предоставляет:1415#### `[base64.b64encode]base64.b64encode(s[, altchars])`1617Кодирует строку с помощью Base64.1819*s* – строка для кодирования. Необязательный аргумент *altchars* должен быть строкой длиной не менее 2 (дополнительные символы игнорируются), которая задаёт альтернативный алфавит для символов `+` и `/`. Это позволяет, например, генерировать строки Base64, безопасные для URL или файловой системы. По умолчанию используется `None`, при этом применяется стандартный алфавит Base64.2021Возвращает закодированную строку.2223#### `[base64.b64decode]base64.b64decode(s[, altchars])`2425Декодирует строку, закодированную Base64.2627*s* – строка для декодирования. Необязательный параметр *altchars* должен быть строкой длиной не менее 2 (дополнительные символы игнорируются), которая задаёт альтернативный алфавит, используемый вместо символов `+` и `/`.2829Возвращается декодированная строка. Исключение [`TypeError`](https://python-all.ru/3.0/library/exceptions.html#exceptions.TypeError) возникает, если *s* имеет неправильное дополнение или содержит символы, не входящие в алфавит.3031#### `[base64.standard_b64encode]base64.standard_b64encode(s)`3233Кодирует строку3435*s*3637с использованием стандартного алфавита Base64.3839#### `[base64.standard_b64decode]base64.standard_b64decode(s)`4041Декодирует строку4243*s*4445с использованием стандартного алфавита Base64.4647#### `[base64.urlsafe_b64encode]base64.urlsafe_b64encode(s)`4849Кодирует строку5051*s*5253с использованием URL-безопасного алфавита, который заменяет5455`+`5657на5859`-`6061, а6263`/`6465на6667`_`6869в стандартном алфавите Base64.7071#### `[base64.urlsafe_b64decode]base64.urlsafe_b64decode(s)`7273Декодирует строку7475*s*7677с использованием URL-безопасного алфавита, который заменяет7879`+`8081на8283`-`8485, а8687`/`8889на9091`_`9293в стандартном алфавите Base64.9495#### `[base64.b32encode]base64.b32encode(s)`9697Кодирует строку с помощью Base32.9899*s*100101– строка для кодирования. Возвращается закодированная строка.102103#### `[base64.b32decode]base64.b32decode(s[, casefold[, map01]])`104105Декодирует строку, закодированную Base32.106107*s* – декодируемая строка. Необязательный параметр *casefold* – флаг, указывающий, допустим ли алфавит в нижнем регистре на входе. Из соображений безопасности по умолчанию `False`.108109[**RFC 3548**](https://python-all.ru/3.0/library/base64.html) допускает необязательное отображение цифры 0 (ноль) на букву O (о) и необязательное отображение цифры 1 (один) на букву I (ай) или букву L (эл). Необязательный аргумент *map01*, если он не равен `None`, указывает, на какую букву должна отображаться цифра 1 (когда *map01* не равен `None`, цифра 0 всегда отображается на букву O). В целях безопасности по умолчанию используется `None`, чтобы 0 и 1 не допускались во входных данных.110111Возвращается декодированная строка. Исключение [`TypeError`](https://python-all.ru/3.0/library/exceptions.html#exceptions.TypeError) возникает, если *s* имеет неправильное дополнение или содержит символы, не входящие в алфавит.112113#### `[base64.b16encode]base64.b16encode(s)`114115Кодирует строку с помощью Base16.116117*s* – строка для кодирования. Возвращается закодированная строка.118119#### `[base64.b16decode]base64.b16decode(s[, casefold])`120121Декодирует строку, закодированную Base16.122123*s* – декодируемая строка. Необязательный параметр *casefold* – флаг, указывающий, допустим ли алфавит в нижнем регистре на входе. Из соображений безопасности по умолчанию `False`.124125Возвращается декодированная строка. Исключение [`TypeError`](https://python-all.ru/3.0/library/exceptions.html#exceptions.TypeError) возникает, если *s* имеет неправильное дополнение или содержит символы, не входящие в алфавит.126127Устаревший интерфейс:128129#### `[base64.decode]base64.decode(input, output)`130131Декодирует содержимое файла132133*input*134135и записывает полученные двоичные данные в файл136137*output*138139.140141*input*142143и144145*output*146147должны быть файловыми объектами или объектами, имитирующими интерфейс файлового объекта.148149*input*150151будет читаться до тех пор, пока152153`input.read()`154155не вернёт пустую строку.156157#### `[base64.decodestring]base64.decodestring(s)`158159Декодирует строку160161*s*162163, которая должна содержать одну или несколько строк данных, закодированных в base64, и возвращает строку, содержащую результирующие двоичные данные.164165#### `[base64.encode]base64.encode(input, output)`166167Кодирует содержимое файла168169*input*170171и записывает полученные данные, закодированные в base64, в файл172173*output*174175.176177*input*178179и180181*output*182183должны быть файловыми объектами или объектами, имитирующими интерфейс файлового объекта.184185*input*186187считывается до тех пор, пока188189`input.read()`190191не вернёт пустую строку.192193[`encode()`](https://python-all.ru/3.0/library/base64.html#base64.encode)194195возвращает закодированные данные с завершающим символом новой строки (196197`'\n'`198199).200201#### `[base64.encodestring]base64.encodestring(s)`202203Кодирует строку204205*s*206207, которая может содержать произвольные двоичные данные, и возвращает строку, содержащую одну или несколько строк данных, закодированных в base64.208209[`encodestring()`](https://python-all.ru/3.0/library/base64.html#base64.encodestring)210211возвращает строку, содержащую одну или несколько строк данных, закодированных в base64, всегда включая дополнительный завершающий символ новой строки (212213`'\n'`214215).216217Пример использования модуля:218219```python220>>> import base64221>>> encoded = base64.b64encode('data to be encoded')222>>> encoded223'ZGF0YSB0byBiZSBlbmNvZGVk'224>>> data = base64.b64decode(encoded)225>>> data226'data to be encoded'227```228229> **См. также**230>231> **Модуль [`binascii`](https://python-all.ru/3.0/library/binascii.html#module-binascii)**232>233> Вспомогательный модуль, содержащий преобразования ASCII-в-двоичный и двоичный-в-ASCII.234>235> **[**RFC 1521**](https://python-all.ru/3.0/library/base64.html) – MIME (Многоцелевые расширения интернет-почты) Часть 1: Механизмы указания и описания формата тел интернет-сообщений**236>237> Раздел 5.2, «Base64 Content-Transfer-Encoding», содержит определение кодировки base64.238