Base64编码由来
为什么会使用Base64编码呢?因为有些网络传输方式,并不支持采用不可见字符进行传输,例如传统的邮件只支持可见字符的传送,像ASCII码的控制字符就不能通过邮件传输。
这样,采用某种传输方式时,内容就受到了很大的限制,比如图片数据流的每个字节都是不可见字符,所以就传输不了。最好的方法就是在不改变传统协议的情 况下,做一种扩展方案来支持二进制文件的传送。把不可打印的字符也能用可打印字符来表示,Base64编码应运而生,Base64就是一种 基于64个可打印字符来表示二进制数据的表示方法。
Base64编码的原理
Base64的码表只有64个字符, 要表达这全部64个字符,使用6位bit即可完全表示(2的6次方为64)。
因为Base64的编码只有6位bit即可表示,而正常的字符是使用8个bit表示, 8和6的最小公倍数是24,所以4个Base64字符可以表示3个标准的ascll字符;
如果是字符串转换为Base64码, 会先把对应的字符串转换为ascll码表对应的数字, 然后再把数字转换为2进制, 比如a的ascll码味97, 97的二进制是:01100001, 把8个二进制提取成6个,剩下的2个二进制和后面的二进制继续拼接, 最后再把6个二进制码转换为Base64对于的编码。