BASE64编码

本文详细介绍了BASE64编码的基本原理及其实现过程,包括如何将连续的字节数据转换为ASCII字符,处理不足3个8位字节的情况以及如何进行填充等。
lBASE64编码规则将一组连续的字节数据按6bit位进行分组,然后对每组数据用一个ASCII字符来表示。6bit位最多能表示2664个数值,因此可以使用64ASCII字符来对应这64个数值,这64ASCII字符为:

  "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"

l计算[0110,0001][0110,0010] [0110,0011]BASE64编码

  [0110,0001][0110,0010] [0110,0011]à[0110,00] [01,0110,][0010,01] [10,0011]

  [0110,00][01,0110,] [0010,01] [10,0011]à[24]10 [22]10 [9]10 [35]10

  [24]10 [22]10 [9]10 [35]10à"YWJj"

lBASE64编码要求把38位字节(即24bit)的数据转化为46位字节(也是24bit)的数据,如果原来的8位字节数据的字节个数不能被3整除,那么如何对余下的1个或28位字节数据进行处理呢?

  仍然按6bit位对剩余的字节进行分组,在最后不够6bit位的内容后面添加几个为0bit位来凑成6bit位,例如,[0110,0001]à[0110,00] [01,0000

l如果编码后的整个结果文本的字符个数不是4的整数倍,那么需要在最后填充“=”字符来凑成4的倍数。 
l经过BASE64编码后的结果所占用的字节个数大约是原始内容的4/3倍,计算公式为:编码后的大小= ((原始大小+2)/3)*4
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值