本文约1620字,建议阅读时间8~10分钟
关键字:python,二进制数据,ASCII字符,编码,base64
base64模块提供了二进制数据与ASCII字符之间编码与解码的方法(也可参见binascii模块),包括Base16、Base32、Base64、Ascii85和Base85方法。上述方法非常适合二进制数据的编码,主要用于安全电子邮件、URL或者HTTP的post请求等,但与uuencode程序不同。
basse64模块提供了两个接口。新接口支持将类字节对象编码为ASCII字节,并且提供将类字节对象或者包含ASCII码的字符串解码为字节;旧的接口不支持将字符串解码,但支持将文件对象编码和解码,且只支持Base64的标准字母表,每76个字符换行。
1、新接口
(1)Base64编码
from base64 import b64encode
data_bin=b'Winter to spring be far behind.’
b64encode(data_bin,altchars=None)
#返回b'V2ludGVyIHRvIHNwcmluZyBiZSBmYXIgYmVoaW5kLg=='
#备选参数altchars指定时必须是长度为2的类字节对象(超过2多余的字节将被忽略),用于替代+和/字符,下同
#注:输入为类字节对象,返回包含ASCII的字节串,如果想获取相应的ASCII字符串,可通过decode()方法获得
(2)Base64解码
from base64 import b64decode
data_ascii=b'V2ludGVyIHRvIHNwcmluZyBiZSBmYXIgYmVoaW5kLg=='
b64decode(data_ascii,altchars=None,validate=Fal