简述
Base64是一种用64个字符来表示任意二进制数据的方法。
Base64编码可以成为密码学的基石。可以将任意的二进制数据进行Base64编码。所有的数据都能被编码为并只用64个字符就能表示的文本文件。( 64字符:A~Z a~z 0~9 + / = )编码后的数据~=编码前数据的4/3,会大1/3左右。
Base64编码的原理
将所有字符转化为ASCII码。
将ASCII码转化为8位二进制 。
将二进制3个归成一组(不足3个在后边补0)共24位,再拆分成4组,每组6位。
统一在6位二进制前补两个0凑足8位。
将补0后的二进制转为十进制。
从Base64编码表获取十进制对应的Base64编码。
Base64编码的说明
转换的时候,将三个byte的数据,先后放入一个24bit的缓冲区中,先来的byte占高位。
数据不足3byte的话,于缓冲区中剩下的bit用0补足。然后,每次取出6个bit,按照其值选择查表选择对应的字符作为编码后的输出。
不断进行,直到全部输入数据转换完成。
如果最后剩下两个输入数据,在编码结果后加1个“=”。
如果最后剩下一个输入数据,编码结果后加2个“=”。
如果没有剩下任何数据,就什么都不要加,这样才可以保证资料还原的正确性。
Python的Base64使用
Python内置的base64模块可以直接进行base64的编解码
注意:用于base64编码的,要么是ASCII包含的字符,要么是二进制数据
In [1]: import base64
In [2]: base64.b64encode(b'hello world')
Out[2]: b'aGVsbG8gd29ybGQ='
In [3]: base64.b64decode(b'aGVsbG8gd29ybGQ=')
Out[3]: b'hello world'
联系客服