什么是base64编码?

bitbit
最后编辑于 2019年05月08日 开发

Base64编码是一个用64个可见的ASCII字符,来表示一堆二进制数的编码方法。所有的二进制数据,不管可见不可见,都可以表示为可见的文本形式的ASCII字符串。

文本虽然可见,但一般仍然是ASCII字符乱码,需要Base64解码才能看懂。

Base64编码表(Base64 index table):

把这一堆二进制数,按6位bit分为一组,其值最小是000000,也就是0;最大是111111,也就是63。从0到63每个值都称为一个Base64索引(Base64 index)。每个Base64索引都对应了一个ASCII字符:一共使用了64个ASCII字符,大写字母A-Z、小写字母a-z、数字0-9,以及加号"+"和斜杠"/"。

把每个Base64索引,替换为对应的字符,这样一堆二进制数就变成了一堆ASCII字符,这就是Base64编码。

因为一个Base64索引是6位bit,而一个字节是8位bit,所以在编码时为了好处理,都会凑够24位bit(也就是3个字节),这样就可以表示为4个Base64索引。简单说,3个字节=4个Base64索引。

如果这一堆二进制数凑不成3个字节的整数怎么办?那就在后面添加0,这个0是Base64编码的后缀,用等号"="表示。总字节数除以3,余数只能是0、1或2,因此一般添加1个0或2个0。

Base64编码主要用于使用文本协议传输二进制数据,比如在HTTP、CSS和SMTP中传输二进制代码或图片,以及一些较长的标识信息。

登录注册后才能评论。