base64编码,非常简单的东西,但是感觉在python里有点混乱,这里罗列一下:
后面的一些库函数都是基于binascii的,binascii是一个C语言实现的内置库。binascii提供了很多编码算法,以b2a_和a2b_打头。b2a_是编码,a2b_是解码,猜测是binary to ascii-string的缩写吧。
特点:非url safe,即有/和+字符,而且末尾还有一个多余的\n
所谓的标准编码和解码,其实是对base64.b64encode()和base64.b64decode()的简单封装,就是去掉了第二个参数。
特点:非url safe,去掉了末尾多余的\n
是对binascii结果的封装处理,首先是去掉了末尾的\n,然后是新加了一个参数叫altchars,该参数要么为None,要么长度为2的bytes,分别对应+与/所要替换的目标字符。
特点:altchars=None就是非url safe的,altchars=b'-_',就是url safe的。
从名字也容易看出来,就是将+/替换成了-_,如此而已
特点:url safe编码
这个名字比较容易费解,因为上面的函数都是只接受bytes为入参的,不支持str的。而实际它干的事情是把binascii的结果按76个字符一行拆开,即每76个字符插入一个\n,只是为了美观而已。
特点: 非url safe,末尾有多余\n,而且每76个字符多一个\n
废弃了,不要使用。