Base64编码后数据量变大的原理

Base64应该是编程中最常使用的编码方式了。

Base64是为了方便不同系统,不同平台间的数据传输而产生的一种数据处理方式。

通常运用于Http、Mime。对应的就是Http通讯跟邮件通讯。

Base64采用的基本数据是ASCII字符。也就是计算机系统的通用字符。也就是26个大小写加10个数字,加号“+”,斜杠“/”,还有一个特殊的“=”作为后缀。

Base64会把每三个8Bit的字节转换为四个6Bit的字节:38Bit->46Bit。然后把6Bit再添两位高位0,组成四个8Bit的字节。那就是变成了4*8Bit。这样的话数据量就会比原来增大1/3。

但是还有一个细节,就是为了保持数据完整性,编码后的数据应该是3的倍数,有时候可能不是3的倍数,那么问题来了。这时候“=”就派上用场了,如果编码后的数据是3的倍数余1的话,就在后面加上两个“=”,如果余2的话,就在后面加上一个“=”。

所以,严格来说,Base64编码后,会比原数据至少增加1/3的数据,有时还有多1、2个等号。