本模块提供依据 RFC 3548的规定进行数据编码和解码。该标准定义Base16、Base32和 Base64算法用于编码和解码任意二进制字符串为文本字符串,因为文本字符串可以安全地通过电子邮件发送、 作为URL的一部分或作为HTTP POST请求的一部分。该编码算法不同于uuencode程序。
此模块提供两个接口。新式接口支持使用所有三种符号系统编码和解码字符串对象。旧版接口提供可编码和解码类文件对象以及字符串的接口,但只使用Base64的标准符号。
在Python 2.4中引入的新式接口提供:
对字符串使用 Base64 进行编码。
s是要编码的字符串。可选的altchars必须是一个长度至少为2的字符串(多余的字符将被忽略),它表示+和/字符的替代字母表。这允许应用程序生成的URL或文件系统安全的Base64字符串。默认值为None表示使用标准的Base64字母表。
返回已编码的字符串。
解码 Base64 编码的字符串。
s是要解码的字符串。可选的altchars必须是一个长度至少为2的字符串(多余的字符将被忽略),它表示+和/字符的替代字母表。
返回已解码的字符串。如果s有错误的填充字符或有非字母表字符出现在字符串中,则引发TypeError 。
使用标准的Base64字母表编码字符串s。
使用标准的Base64字母表解码字符串s。
使用URL安全的字母表编码字符串s,以-和_分别替换标准Base64字母表中的+和/。结果仍然可以包含=。
使用URL安全的字母表解码字符串s,以-和_分别替换标准Base64字母表中的+和/。
使用Base32编码字符串。s是要编码的字符串。返回已编码的字符串。
dfd
s是要解码的字符串。可选casefold是一个标志,指定是否可以接受小写字母作为输入。出于安全目的,默认值为False。
RFC 3548允许数字0映射到字母O,数字1映射到字母I或字母L。可选参数map01不为None时,指定数字1应该映射到哪个字母(当map01不是None时,数字0始终映射到字母O)。出于安全目的缺省值为None,以便在输入中不允许0和1。
返回已解码的字符串。如果s有错误的填充字符或有非字母表字符出现在字符串中,则引发TypeError 。
使用Base16编码字符串。
s是要编码的字符串。返回已编码的字符串。
对Base16编码的字符串进行解码。
s是要解码的字符串。可选casefold是一个标志,指定是否可以接受小写字母作为输入。出于安全目的,默认值为False。
返回已解码的字符串。如果s有错误的填充字符或有非字母表字符出现在字符串中,则引发TypeError 。
旧版接口:
解码input文件的内容并将产生的二进制数据写入output文件。input和output必须要么是文件对象或模仿文件对象接口的对象。input将被读取直到input.read()返回一个空字符串。
解码字符串s,它必须包含一行或多行base64编码的数据,返回一个字符串,包含生成的二进制数据。
编码input文件的内容并将产生的二进制数据写入output文件。input和output必须要么是文件对象或模仿文件对象接口的对象。input将被读取直到input.read()返回一个空字符串。encode()返回编码的数据并在末尾加一个换行符('\n')。
编码字符串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'
请参见