base64 — Base16,Base32,Base64,Base85 数据编码

源代码: Lib/base64.py


该模块提供了将二进制数据编码为可打印的 ASCII 字符并将这些编码解码回二进制数据的Function。它为 RFC 3548中指定的编码(定义了 Base16,Base32 和 Base64 算法)以及事实上的标准 Ascii85 和 Base85 编码提供了编码和解码Function。

RFC 3548编码适合对二进制数据进行编码,以便可以安全地pass电子邮件发送,用作 URL 的一部分或包含在 HTTP POST 请求中。编码算法与 uuencode 程序不同。

此模块提供两个接口。现代接口支持将bytes-like objects编码为 ASCII bytes,并解码bytes-like objects或将包含 ASCII 的字符串解码为bytes。支持在 RFC 3548中定义的两种 base-64 字母(正常,URL 和文件系统安全)。

旧版接口不支持从字符串解码,但确实提供了用于与file objects进行编码和解码的Function。它仅支持 Base64 标准字母,并且按照 RFC 2045每 76 个字符添加换行符。请注意,如果您正在寻找 RFC 2045支持,则可能希望查看email软件包。

在版本 3.3 中进行了更改:现代接口的解码Function现在可以接受纯 ASCII Unicode 字符串。

在版本 3.4 中更改:此模块中的所有编码和解码Function现在都接受任何bytes-like objects。添加了 Ascii85/Base85 支持。

现代界面提供:

可选的* altchars *必须是长度至少为 2 的bytes-like object(忽略其他字符),该字符为+/字符指定替代字母。这允许应用程序例如生成 URL 或文件系统安全的 Base64 字符串。默认值为None,为此使用标准 Base64 字母。

可选的* altchars *必须是长度至少为 2 的bytes-like object或 ASCII 字符串(忽略其他字符),该字符串指定使用替代字母代替+/字符。

如果错误地填充* s *,则会引发binascii.Error异常。

如果* validate False(默认值),则在填充检查之前将丢弃既不在正常的 base-64 字母中也不在替代字母中的字符。如果 validate *是True,则 Importing 中的这些非字母字符将产生binascii.Error

可选的* casefold *是一个标志,指定是否可以接受小写字母作为 Importing。为了安全起见,默认值为False

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

如果错误地填充* s *或 Importing 中存在非字母字符,则引发binascii.Error

可选的* casefold *是一个标志,指定是否可以接受小写字母作为 Importing。为了安全起见,默认值为False

如果错误地填充* s *或 Importing 中存在非字母字符,则引发binascii.Error

3.4 版的新Function。

3.4 版的新Function。

如果* pad *为 true,则 Importing 将填充b'\0',因此其长度是编码前 4 字节的倍数。

3.4 版的新Function。

3.4 版的新Function。

旧版界面:

3.1 版中的新Function。

从 3.1 版开始不推荐使用。

3.1 版中的新Function。

从 3.1 版开始不推荐使用。

该模块的示例用法:

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

See also

  • Module binascii

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

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

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

首页