base64编码规则:

24bit的二进制数

|

分成4组,不足补\x00

|

每组编码成1个字节(用64个ASCII码中的字符表示),总共4个字节,不足补=



importbase64a=base64.b64encode(b'12Abc')print(a)print(str(a,'utf-8'))b=base64.b64decode(a)print(b)print(str(b,'utf-8'))

运行结果:

b'MTJBYmM='MTJBYmM=b'12Abc'12Abc


但,编码后可能存在'+'或'\'号, 在URL中不允许,所以需要通过url safe进行转换:+ --> - \ --> _

importbase64a=base64.b64encode(b'i\xb7\x1d\xfb\xef\xff')print(a)c=base64.urlsafe_b64encode(b'i\xb7\x1d\xfb\xef\xff')print(c)print(base64.urlsafe_b64decode(c))

运行结果:

b'abcd++//'b'abcd--__'b'i\xb7\x1d\xfb\xef\xff'