18.12. base64 — RFC 3548:Base16,Base32,Base64 数据编码

此模块提供 RFC 3548中指定的数据编码和解码。该标准定义了用于将任意二进制字符串编码和解码为文本字符串的 Base16,Base32 和 Base64 算法,这些文本字符串可以pass电子邮件安全地发送,用作 URL 的一部分或作为 HTTP POST 请求的一部分。编码算法与 uuencode 程序不同。

此模块提供两个接口。现代界面支持使用在 RFC 3548中定义的 base-64 字母(正常,URL 和文件系统安全)来编码和解码字符串对象。旧版界面提供了与文件状对象以及字符串之间的编码和解码,但仅使用 Base64 标准字母。

在 Python 2.4 中引入的现代接口提供:

返回编码后的字符串。

返回解码后的字符串。如果* s *错误填充,则引发TypeError。在填充检查之前,既不包含普通 base-64 字母也不包含替代字母的字符都将被丢弃。

RFC 3548允许将数字 0(零)Map 到字母 O(哦),并允许将数字 1(一个)Map 到字母 I(眼睛)或字母 L(el)。可选参数* map01 如果不是None,则指定数字 1 应该 Map 到哪个字母(当 map01 *不是None时,数字 0 总是 Map 到字母 O)。为了安全起见,默认值为None,因此 Importing 中不允许使用 0 和 1.

返回解码后的字符串。如果错误地填充* s *或字符串中存在非字母字符,则引发TypeError

返回解码后的字符串。如果错误地填充* s *或字符串中存在非字母字符,则引发TypeError

旧版界面:

该模块的示例用法:

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

See also

  • Module binascii

  • 支持模块,包含 ASCII 到二进制和二进制到 ASCII 转换。

  • RFC 1521-MIME(多用途 Internet 邮件扩展),第 1 部分:指定和描述 Internet 邮件正文格式的机制

  • 第 5.2 节“ Base64 Content-Transfer-Encoding”提供了 base64 编码的定义。

首页