– 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.Error
A 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"
评论被关闭。