Base64编码

来源:互联网 发布:香波特数据 编辑:程序博客网 时间:2024/06/09 20:13

一、字符编码:ASCII、Unicode、GB类


作用:规定了一个字符 对应到 一个二进制串的规则,这样就可以把字符存到计算机中了。

二、二进制数的显示


我们可以理解成计算机中都存储的是二进制数,这些二进制数是怎么打印到屏幕上的呢?

1、直接显示成“01010011....”(开玩笑了,这是不可能的,因为太长了)

2、如果知道字符编码(比如ASCII、Unicode)的话可以打印成字符。

3、既然第一种方式太长了,那我们就把二进制 转成十六进制 来显示吧,确实缩短了。(我们在使用AES 和 DES加密方法时就用到了这种方式)

4、base64编码,使用该编码会把每三个8Bit的字节转换为四个6Bit的字节,6bit 有 64种状态,这些状态分别对应的64个字符。所以就把一串二进制显示成短的字符串了,。

三、base64编码:(把一串二进制转换成另一种二进制串,以至于可以打印成英文、数字字符还有+、/


1、Base64要求把每三个8Bit字节转换为四个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


四、BCD码 :一种用二进制数表示十进制数的方式。提高十进制转换成二进制的效率。

0 0