– Base16,Base32,Base64,Base85数据编码 – 互联网数据处理(Python教程)(参考资料)
base64– Base16,Base32,Base64,Base85数据编码
源代码: Lib / base64.py
该模块提供了将二进制数据编码为printableASCII字符并将这些编码解码回二进制数据的功能。它为RFC 3548 ,它定义了Base16,Base32和Base64算法,以及事实上的标准Ascii85和Base85编码.
RFC 3548 编码适用于编码二进制数据,以便它可以通过电子邮件发送,用作URL的一部分,或作为HTTPPOST请求的一部分包含在内。编码算法与uuencode program.
这个模块提供了两个接口。现代接口支持编码字节对象到ASCII bytes,并解码类似字节的对象包含ASCII到bytes的orstrings。在 RFC 3548 (正常,URL和文件系统安全)中定义的base-64字母都支持.
传统接口不支持从字符串解码,但它提供了对文件对象进行编码和解码的函数。它只支持Base64标准字母表,并根据 RFC 2045 每76个字符添加一行。请注意,如果您正在寻找 RFC 2045 支持你可能想要查看email包而不是
更改版本3.3:仅ASCII字符串现在接受现代接口的解码功能.
现代界面提供:
base64.b64encode(s, altchars=None)-
使用Base64编码字节对象 s并返回编码后的
bytes.可选altchars必须是字节对象至少长度为2(忽略其他字符),它指定
+和/字符的替代字母。这允许应用程序例如生成URL或文件系统安全的Base64字符串。默认为None,因为使用标准的Base64字母.
base64.b64decode(s, altchars=None, validate=False)-
解码Base64编码的字节 -喜欢对象或ASCII字符串s并返回解码的
bytes.可选altchars必须是字节对象或最小长度为2的ASCII字符串(忽略其他字符),指定使用的替代字母而不是
+和/字符一个
binascii.Error异常被提升s被错误填充.如果validate是
False(默认值),则字符不在正常的base-64字母表中在填充检查之前,也没有替代字母。如果validate是True,输入中的这些非字母字符会导致binascii.Error.
base64.standard_b64encode(s)-
编码字节对象 s使用标准的Base64字母并返回编码的
bytes.
base64.standard_b64decode(s)-
解码字节对象或ASCII字符串s使用standardBase64字母并返回解码的
bytes.
base64.urlsafe_b64encode(s)-
编码字节对象 s使用theURL-和filesystem-safe字母表,取代
-和+而不是_而不是标准的Base64字母表中的/,并返回编码的bytes。结果可以包含=.
base64.urlsafe_b64decode(s)-
解码字节对象或ASCII字符串s使用URL-和filesystem-safealphabet,在标准Base64字母表中用
-代替+和_而不是/,并返回解码bytes.
base64.b32encode(s)-
使用Base32编码类似字节的对象 s并返回编码的
bytes.
base64.b32decode(s, casefold=False, map01=None)-
解码Base32编码的字节对象或ASCII字符串s并返回解码的
bytes.可选的 casefold是一个标志,指定小写字母是否可以作为输入。出于安全考虑,默认为
False.RFC 3548 允许将数字0(零)可选地映射到字母O(oh),并且可选地将数字1(一)映射到字母I(眼睛)或字母L(el)。可选参数map01当没有
None时,指定数字1应该映射到哪个字母(当map01不是None时,数字0总是映射到字母O)。出于安全考虑,默认为None,输入中不允许0和1 .一个
binascii.Error如果s填充不正确或输入中是否存在非字母字符
base64.b16encode(s)-
编码字节式对象 s使用Base16并返回编码
bytes.
base64.b16decode(s, casefold=False)-
解码Base16编码的字节对象或ASCII字符串s并返回解码的
bytes.可选casefold是一个标志,指定是否可以接受alowercase字母作为输入。出于安全考虑,如果
False.填充不正确或者输入中存在非字母字符,则会引发默认值
binascii.ErrorA s.
base64.a85encode(b, *, foldspaces=False, wrapcol=0, pad=False, adobe=False)-
使用Ascii85编码类似字节的对象 b并返回编码的
bytes.foldspaces是一个使用特殊短的可选标志序列’y’而不是’btoa’支持的4个连续空格(ASCII 0x20)。“标准”Ascii85编码不支持此功能.
wrapcol控制输出是否应添加换行符(
b"\n")。如果这不是零,则每个输出行将击败大多数这么长的字符.pad控制输入是否在编码前填充到4的倍数。注意
btoa实现总是pads.adobe控制编码的字节序列是否用
<~和~>构成,这是由Adobe实现使用的。版本3.4.
base64.a85decode(b, *, foldspaces=False, adobe=False, ignorechars=b” \t\n\r\v”)-
解码Ascii85编码的字节对象或ASCII字符串b并返回解码的
bytes.foldspaces是一个标志,指定’y’短序列是否应该被接受为4个连续空格(ASCII 0x20)的简写。“标准”Ascii85编码不支持此功能.
adobe控制输入序列是否为Adobe Ascii85格式(即用&lt;〜框起)和〜&gt;).
ignorechars应该是类似字节的对象或包含要从输入中忽略的ASCII字符串。这应该只包含空格字符,并且默认包含ASCII中的所有空白字符.
新版本3.4.
base64.b85encode(b, pad=False)-
编码类似字节的对象 b使用base85(用于eggit样式的二进制差异)并返回编码的
bytes.如果pad为真,输入用
b"\0"填充所以它的长度在编码之前是4个字节的数量.新版本3.4.
base64.b85decode(b)-
解码base85编码的字节对象或ASCII字符串b并返回解码的
bytes。填写是隐含删除,如果必要的话新版本3.4.
传统界面:
base64.decode(input, output)-
解码二进制input文件的内容,并将生成的二进制数据写入output文件。input和output必须是文件对象. input将被读取,直到
input.readline()返回空字节对象.
base64.decodebytes(s)-
解码字节对象 s,它必须包含一行或多行base64编码数据,并返回解码后的
bytes.版本3.1.
base64.decodestring(s)-
的新别名
decodebytes().自3.1版以来已弃用.
base64.encode(input, output)-
对二进制文件input文件的内容进行编码,并将生成的base64encoded数据写入output文件。input和output必须是 fileobjects . input将被读取,直到
input.read()返回空字节对象。encode()插入换行符(b"\n")输出的每76个字节后,以及确保输出路径以换行符结尾,按 RFC 2045 (MIME).
base64.encodebytes(s)-
编码字节对象 s,可以包含任意二进制数据,并返回包含base64编码数据的
bytes,带换行符(b"\n")在每76个字节的输出后插入,并确保有一个尾随的换行符,如RFC 2045 (哑剧)。版本3.1.
base64.encodestring(s)-
弃用的别名
encodebytes().自版本3.1.以后已弃用
模块的一个示例用法:
>>> import base64>>> encoded = base64.b64encode(b"data to be encoded")>>> encodedb"ZGF0YSB0byBiZSBlbmNvZGVk">>> data = base64.b64decode(encoded)>>> datab"data to be encoded"
评论被关闭。