base64编码原理

77 阅读1分钟
  • 什么是base64编码

相信你一定见过类似这样的链接:https://xxx.com?dXNlcmlkJTNEamlzYWpmYWxmamE=;其中querystring部分就是使用了base64编码来处理携带的链接参数。

base64是用于传输8bit字节码的编码方式,基于64个可打印字符来表示二进制数据,因使用的字符数量因此得名。

  • 编码原理

那么,base64的编码原理是什么,我们以一个例子来看base64的转码过程:

假如我们要对字符wo进行base64编码:

首先从ASCII码对照表找到字符w,0的码值,分别为:119,111

image.png

下面是一张转码过程表:首先对于二进制8bit字节码切割为6bit为单位的字节码,不足进制位补0,然后转换位十进制数,之后十进制数参照base64转换表,多余的进制为用'='填充。

image.png

综上,base64编码的原理是将输入流中的字节按每3个分为一组,共24bit字节码,然后每次取6个比特,将其转换成表格中对应的数据,一直重复到没有剩余的字符为止。

  • 优缺点

base64编码一定程度上增加了编码的数据量,举个例子,原始数据是9个字节,那么base64编码后的数据长度12个字节, 9 * 8 / 6 = 12,增加了约三分之一。

base64编码优点在于可以在不损失数据的情况下,将不可见字符转换为可见字符形式,通过将二进制数据转换成 ASCII 字符,方便在各种文本协议中传输和存储二进制数据,带来一定程度的方便。

base64转换表:

image.png