base64
base64 — RFC 3548: Base16, Base32, Base64 Data Encodings
该模块提供RFC 3548中
规定的数据编码和解码。该标准定义了用于编码和解码任意二进制字符串为文本字符串的Base16,Base32和Base64算法,这些字符串可以通过电子邮件安全发送,用作URL的一部分或作为HTTP POST请求的一部分包含在内。编码算法与uuencode
程序不同。
这个模块提供了两个接口。现代接口支持使用RFC 3548中
定义的base-64字母(正常,URL和文件系统安全)编码和解码字符串对象。传统界面提供了对文件类对象以及字符串的编码和解码,但仅使用Base64标准字母表。
Python 2.4引入的现代接口提供:
base64.b64encode(s[, altchars])
使用Base64编码一个字符串。
s
是要编码的字符串。可选的altchars
必须是一个至少包含长度为2的字符串(忽略其他字符),该字符串指定+
和/
字符的替代字母表。这允许应用程序例如生成URL或文件系统安全的Bas
e64字符串。默认值是None
,使用标准的Bas
e64字母表。
编码的字符串被返回。
base64.b64decode(s[, altchars])
Decode a Base64 encoded string.
s
是要解码的字符串。可选的altchars
必须是长度至少为2的字符串(忽略附加字符),该字符串指定使用替代字母表而不是+
和/
字符。
解码后的字符串被返回。TypeError
如果s
未正确填充,则引发A. 在填充检查之前,不会放弃正常的bas
e-64字母表或替代字母表中的字符。
base64.standard_b64encode(s)
编码字符串小号
使用标准的Base64字母表。
base64.standard_b64decode(s)
解码字符串小号
使用标准的Base64字母表。
base64.urlsafe_b64encode(s)
编码字符串小号
使用URL-
和文件系统安全的字母表,其中替代-
代替+
和_
代替/
标准的Base64字母表。结果仍然可以包含=
。
base64.urlsafe_b64decode(s)
解码字符串小号
使用URL-
和文件系统安全的字母表,其中替代-
代替+
和_
代替/
标准的Base64字母表。
base64.b32encode(s)
使用Bas
e32编码一个字符串。s
是要编码的字符串。编码的字符串被返回。
base64.b32decode(s[, casefold[, map01]])
解码Base32编码的字符串。
s
是要解码的字符串。可选casefold
是一个标志,指定小写字母是否可以作为输入。为了安全起见,默认是False
。
RFC 3548
允许将数字0(零)可选地映射到字母O(哦),并且可选地将数字1(一)映射到字母I(眼睛)或字母L(el)。可选参数 map01
如果不是None
,指定数字1应该映射到哪个字母(当 map01
不是None
,数字0总是映射到字母O)。出于安全目的,默认值是None
0,因此输入中不允许使用0和1。
解码后的字符串被返回。TypeError
如果s
未正确填充或字符串中存在非字母字符,则会引发A.
base64.b16encode(s)
使用Base16编码一个字符串。
s
是要编码的字符串。编码的字符串被返回。
base64.b16decode(s[, casefold])
解码Base16编码的字符串。
s
是要解码的字符串。可选casefold
是一个标志,指定小写字母是否可以作为输入。为了安全起见,默认是False
。
解码后的字符串被返回。TypeError
如果s未
正确填充或字符串中存在非字母字符,则会引发A.
传统界面:
base64.decode(input, output)
解码输入
文件的内容并将生成的二进制数据写入输出
文件。输入
和输出
必须是文件对象或模仿文件对象接口的对象。输入
将被读取直到input.read()
返回一个空字符串。
base64.decodestring(s)
解码必须包含一行或多行bas
e64编码数据的字符串s
,并返回包含结果二进制数据的字符串。
base64.encode(input, output)
编码输入
文件的内容并将生成的base64编码数据写入输出
文件。输入
和输出
必须是文件对象或模仿文件对象接口的对象。输入
将被读取直到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'