1.项目背景:
在计算机中一个字节共有256种,即ascii码表,而ascii码的128~255之间的值是不可见字符,对于一些只支持可见字符的协议,比如邮件传输协议(SMTP)只支持可见的ASCII字符的传递,如果要传输二进制文件,比如:图片、视 频是无法实现的,因此就有了base64编码格式,Base64编码格式对于所有二进制格式的数据,都可以转化为可显 示的字符。base64的应用场景非常多,比如:
-
- 在网络上交换数据时,比如说从A地传递到B地,往往要经过多个路由设备,由于不同的设备对字符的处理方 式有一些不同,这样那些不可见字符就有可能被处理错误,不利于传输。
- http先以当中的key-value字段,必须进行url编码,不然出现的等号或者空格可能是解析失败
- 有些文本协议不支持可见字符传输,比如简单邮件传输协议(SMTP)
- 网页中内嵌简单图片
2.项目目标:
实现一个在线的base64的转换工具,支持文本的base64编码以及base64的解码,以及图片base64的转换
3.整体框架:
采用B/S的模式
4.base64编码原理
base64编码之所以成为base64,是因为其使用64个字符来对二进制数据进行编码。
采用对应的编码表:
4.1编码过程:
这是最重要的一步,也是核心的地方
具体编码过程如下:
- 将每三个字符作为一组,一共是24个二进制比特位
- 将这24个二进制比特位分为4组,每组有6个二进制比特位
- 在每组前面加两个00扩展成32个二进制位,即四个字节
说白了就是将每三个字节转变为上述表格中可显示的4个字节。具体如下:
字符串能被3整除,比如base64编码:Man
1. "M"、"a"、"n"的ASCII值分别是77、97、110,对应的二进制值是01001101、01100001、01101110, 将它们连成一个24