- 什么是base64编码
相信你一定见过类似这样的链接:https://xxx.com?dXNlcmlkJTNEamlzYWpmYWxmamE=
;其中querystring部分就是使用了base64编码来处理携带的链接参数。
base64是用于传输8bit字节码的编码方式,基于64个可打印字符来表示二进制数据,因使用的字符数量因此得名。
- 编码原理
那么,base64的编码原理是什么,我们以一个例子来看base64的转码过程:
假如我们要对字符wo
进行base64编码:
首先从ASCII码对照表找到字符w
,0
的码值,分别为:119,111
下面是一张转码过程表:首先对于二进制8bit字节码切割为6bit为单位的字节码,不足进制位补0,然后转换位十进制数,之后十进制数参照base64转换表,多余的进制为用'='填充。
综上,base64编码的原理是将输入流中的字节按每3个分为一组,共24bit字节码,然后每次取6个比特,将其转换成表格中对应的数据,一直重复到没有剩余的字符为止。
- 优缺点
base64编码一定程度上增加了编码的数据量,举个例子,原始数据是9个字节,那么base64编码后的数据长度12个字节, 9 * 8 / 6 = 12,增加了约三分之一。
base64编码优点在于可以在不损失数据的情况下,将不可见字符转换为可见字符形式,通过将二进制数据转换成 ASCII 字符,方便在各种文本协议中传输和存储二进制数据,带来一定程度的方便。
base64转换表: