1、Base64是什么?
Base64是一种编码方式,将8位的二进制转化为7位的ASCII字符。
它是基于64个可打印字符来表示二进制数据的表示方法.它是一种将二进制编码转换为可打印字符一种。
Base64编码最初就是是为了满足电子邮件中不能直接使用非ASCII码字符的规定。
2、Base64编码方式
Base64,就是说选出64个字符—-小写字母a-z、大写字母A-Z、数字0-9、符号”+”、”/”(再加末尾填充的”=”,实际上是65个字符)—-作为一个基本字符集。然后,其他所有符号都转换成这个字符集中的字符。
编码步骤:
1. 3个8位字节(3x8=24)转化为4个6位的字节(4x6=24)。
2. 在6位的前面补两个0,形成8位一个字节的形式。
3. 剩下的字符不足3个字节,则用0填充,输出字符使用’=’,因此编码后输出的文本末尾可能会出现1或2个’=’。
4. 根据编码表找到扩展后的每个字节对应的符号。
下图是编码表:
3、 将Hello!!
做base64编码的例子
图表中蓝色背景的二进制0值是额外补充的。
Hello!!
Base64编码的结果为 SGVsbG8hIQAA
。最后2个零值只是为了Base64编码而补充的,在原始字符中并没有对应的字符,那么Base64编码结果中的最后两个字符 AA
实际不带有效信息,所以需要特殊处理,使用=
替换最后的A
。
注:由于字符的编码方式有很多种,比如汉字就有GBK、UTF-8等编码,每种编码方式都可能有不同的二进制值,所以不同字符编码的字符对应的base64有可能不同。如果想得到正确编码下的base64值,则必须保证输入的字符为正确的编码。