Base64是什么?
Base64是一种二进制到文本的编码方式。如果要更具体一点的话,可以认为它是一种将 byte数组编码为字符串的方法,而且编码出的字符串只包含ASCII基础字符。值得注意的是Base64不是加密算法,其仅仅是一种编码方式,算法也是公开的,所以不能依赖它进行加密。
为什么叫Base64?
因为它是基于(Base)64个字符的一种编码方式。使用其编码后的文本只包含64个ASCII码字符(偶尔加一个填充字符=),如下所示:
Base64使用到的64个字符:
A-Z 26个
a-z 26个
0-9 10个
+1个
/ 1个
Base64解决什么问题?
Base64编码是从二进制值到某些特定字符的编码,这些特定字符一共64个,所以称作Base64。
为什么不直接传输二进制呢?比如图片,或者字符,既然实际传输时它们都是二进制字节流。而且即使Base64编码过的字符串最终也是二进制(通常是UTF-8编码,兼容ASCII编码)在网络上传输的,那么用4/3倍带宽传输数据的Base64究竟有什么意义?
真正的原因是二进制不兼容。某些二进制值,在一些硬件上,比如在不同的路由器,老电脑上,表示的意义不一样,做的处理也不一样。同样,一些老的软件,网络协议也有类似的问题。
在项目中,对报文进行压缩、加密后,最后一步一般是 base64 编码。因为 base64 编码的字符串更适合不同平台,不同语言的传输。
Base64 编码的优点:
1.算法是编码,不是压缩,编码后只会增加字节数(一般是比之前的多1/3,比如之前是3, 编码后是4)
2.算法简单,基本不影响效率
3.算法可逆,解码很方便,不用于私密传输。
毕竟编码了,肉眼不能直接读出原始内容。
加密后的字符串只有【0-9a-zA-Z+/=】 不可打印字符(转译字符)也可以传输
所以:Base64就是为了解决各系统以及传输协议中二进制不兼容的问题而生的
对应的BASE64编码
20231313 ——>MjAyMzEzMTM=
张景云 ——>5byg5pmv5LqR