base64编码
为什么是64个字符?
base64 是讲3个8字节(38=24)进行转化为4个6bit的字节(46=24),之后,在6位前面补2个0形成了4个字节。【24bit ==> 32位】 若是字符不足3个字节,则用0填充。输出的字符是=,因此会出现1个或者2个=符号。
为了保证所输出的编码位可读字符,Base64制定了一个编码表,以便进行统一转换。编码表的大小为2^6=64,这也是Base64名称的由来(上表可以看到)。
???存在一个问题,全部为0的时候,为什么是=字符,而不是A,上面的0 是A表示???
Base64 是一种基于64个可打印字符来表示二进制数据的表示方法,base64常用于文件数据处理的场合,表示传输、存储一些二进制数据。包括MIME的email、在XML中存储复杂数据。
一个中文对应3个字符?
base编码中是这样的(所以中文在base编码是没有=号的)
Base64编码的作用:由于某些系统中只能使用ASCII字符。Base64就是用来将非ASCII字符的数据转换成ASCII字符的一种方法。
base64 并不是一种加密的算法,只能够算是第一种编码(不安全)
作用就是传输的过程中能够被认识。##
而且base64特别适合在http,mime协议下快速传输数据。
ps:
(1)base64并不是一种加密算法,而是一种编码(类似于Ascall编码)
(2)为什么用base64编码,而不是使用ASCLL编码,因为网络上识别Base64的编码。
(具体怎么识别?)
尤其是一个url上的网络链接请求识别不了ASCLL编码。而是识别Base64.所以,我们在链接上输入一些字符在网络链接上请求的时候,会经过base64转化进行编码的。
base64编码场景需求:
https://www.zhihu.com/question/36306744/answer/71626823
http://www.ruanyifeng.com/blog/2008/06/base64.html
http://blog.xiayf.cn/2016/01/24/base64-encoding/ 编码原理
有时间需要查看一下关于base64编码的相关内容。
ps:
(1)base64 编码的存在,是为了解决Ascall编码中的128 ~255 的编码之间路由器不识别的问题。所以,有可能会出现错误。所以,在和路由器相关的识别的内容应该就要使用base64编码。
(2)所以,存在url的编码采用了base64,电子邮件数据、rsa编码,也就是加密的东东都是要经过base64进行编码一下。