一、原理
Base64编码,是我们程序开发中经常使用到的编码方法。它是一种基于用64个可打印字符来表示二进制数据的表示方法。
二、字符组成
在Base64中的可打印字符包括字母A-Z、a-z、数字0-9 ,这样共有62个字符,此外两个可打印符号在不同的系统中一般有所不同。但是,我们经常所说的Base64另外2个字符是:“+/”。这64个字符,所对应表如下:

三、Base64编码说明
转换的时候,将三个byte的数据,先后放入一个24bit的缓冲区中,先来的byte占高位。数据不足3byte的话,于缓冲区中剩下的bit用0补足。然后,每次取出6个bit,按照其值选择ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/中的字符作为编码后的输出。不断进行,直到全部输入数据转换完成。所以加密后的数据量是原来的4/3
Base64编码要求把3个8位字节(3 * 8=24)转化为4个6位的字节(4 * 6=24),之后在6位的前面补两个0,形成8位一个字节的形式。 如果剩下的字符不足3个字节,则用0填充,输出字符使用'=',因此编码后输出的文本末尾可能会出现1或2个'='。
四、具体转换过程
"陈" base64后为 "6ZmI"
1."陈"转换为utf-8的二进制表达为 11101001 10011001 10001000
2.每隔6字节进行截取,末尾不足6字节时补0
3.截取后为 111010 011001 100110 001000
4.参照Base64编码表, 对应的base64编码分别为 6 Z m I,所以最终结果为 6ZmI
"A" base64后为 "QQ=="
1."A"转换为utf-8的二进制表达为 01000001
2.每隔6字节进行截取,末尾不足6字节时补0
3.截取后为 010000 010000
4.参照Base64编码表, 对应的base64编码分别为 Q Q = =,所以最终结果为 QQ==


网友评论