计算机中的数据一般是由ascii编码,来存储的,
0---31以及127,表示的是控制字符;
32-126表示的是字符,包括空格,阿拉伯数字,大小写字母;
之后的128个字符,是不可见的字符,
在网络传输的过程中,128之后的字符,在不同的通信设备中,可能会存在不同的处理方式,而导致这些字符被错误的处理;
导致通信出错。
所以在网络中,常常将数据先做一个base64的编码,统统变为可见字符,在通信的接收方,再进行base64的解码,来保证ascii被正确的
传输。
很多纯文本的数据,都需要经过这样的处理。其他的非文本,本身不涉及到之后的不可见字符,可能不需要。
Base64的编码,使用6bit表示之前的8bit,翻译之后的字符,包括,26个小写字母,26个大写字母,一个+,一个反斜扛
这样的编码好处是,3个ascii码,一定可以转换为4个base64编码的字符;
如果原字符不满足3的整数倍,则在之后加0,一直到3n个字符;
Base64的编码对照表:
一个base64编码转换的例子:
总结起来,base64解决了,很多纯文本的数据的传输,可靠性。
SMTP和http中会常使用,(http也有自己的技术保证纯文本的数据传输的可靠性,可以直接传ascii编码的数据)
X.509的证书