一、字符编码:ASCII、Unicode、GB类
作用:规定了一个字符 对应到 一个二进制串的规则,这样就可以把字符存到计算机中了。
二、二进制数的显示
我们可以理解成计算机中都存储的是二进制数,这些二进制数是怎么打印到屏幕上的呢?
1、直接显示成“01010011....”(开玩笑了,这是不可能的,因为太长了)
2、如果知道字符编码(比如ASCII、Unicode)的话可以打印成字符。
3、既然第一种方式太长了,那我们就把二进制 转成十六进制 来显示吧,确实缩短了。(我们在使用AES 和 DES加密方法时就用到了这种方式)
4、base64编码,使用该编码会
把每三个8Bit的字节转换为四个6Bit的字节,6bit 有 64种状态,这些状态分别对应的64个字符。所以就把一串二进制显示成短的字符串了,。
三、base64编码:(把一串二进制转换成另一种二进制串,以至于可以打印成英文、数字字符还有+、/)
1、
Base64要求把每三个8
Bit
的
字节
转换为四个6Bit的字节(3*8 = 4*6 = 24),然后把6Bit再添两位高位0,组成四个8Bit的字节,也就是说,转换后的字符串理论上将要比原来的长1/3。
2、在email传输中,加密是肯定的,但是base64加密的目的不是让用户发送非常安全的Email。这种加密方式主要就是“防君子不防小人”,达到一种一眼看上去看不出内容的效果。
3、
base64编码是用来解决把
不可打印的内容塞进可打印内容的需求
的。比如把
图片存到数据库
,图片数据归根到底还是一堆二进制串(总不能把这些二进制串直接存到数据库吧),用base64编码后的显示成的字符串就大大缩小的长度,可以存到数据库。
4、
满足电子邮件中不能直接使用非ASCII码字符传输数据的规定,所以使用base64进行编码后传输,因为base64的64个字符肯定有对应的ascii编码。
5、请不要再叫base64加密,请叫base64编码
让我们再来看一个实际的例子,加深印象!
转换前 10101101 10111010 01110110
转换中 101011 011011 101001 110110
转换后 00101011 00011011 00101001 00110110
对应码表中的值 r b p 2