中文信息处理技术专栏
Base64编码
Base64属于MIME(Multipurpose Internet Mail Extensions,多功能Internet 邮件扩充服务),它是被多媒体电子邮件和 WWW 超文本广泛使用的一种编码标准,用于传送诸如图形、声音和传真等非文本数据。在RFC1341中详细定义了MIME。Base64是现今在互联网上应用最多的一种编码,几乎所有的电子邮件软件头把它作为默认的二进制编码,它几乎已经成了现今电子邮件编码的代名词。
下面就是一个MIME中使用Base64的例子:
MIME-Version: 1.0
Content-Type: text/plain;
charset=gb2312
Content-Transfer-Encoding: base64
X-MSMail-Priority: Normal
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2615.200
ztK5+rK7vfbKx8rAvefJz9futPO1xMuutb7J+rL6ufq6zc/7t9G5+qOsuPzKx7W+1/fA+sq31+7T
xr7DoaLLrrW+0sW0q9fK1LTX7rfhuLu1xLn6vNLWrtK7oaO/vLnF1qTD96Os1OfU2jcwMDC24MTq
x7CjrM7Sufq+zb+qyrzW1tayy661vqGjDQo=
Base64编码算法:
Base64编码的方法是:将输入数据流每次取6bit,用此6 bit的值(0-63)作为索引去查Base编码对照表,然后输出相应字符。这样,每3个字节将编码为4个字符(3×8 == 4×6),编码的结果出现最后不满4个字符的情况时用 “=”填充,这可以避免后面附加的信息造成编码的混乱,而且便于解码,因此编码后的的字符串长度肯定是4的倍数。由于可能补充“=”,Base64编码后的结果实际上最多有65种符号。
Base64编码具体过程是这样的,第一个字符通过右移2位得到高6位,获得第一个目标字符在base64编码表中的位置,根据这个位置取到表3.1上相应的字符,就得到第一个目标字符,然后将第一个字符左移6位拼上第二个字符右移4位的结果,即获得第二个目标字符的位置,再将第二个字符左移4位拼上第三个字符右移6位结果,获得第三个目标字符位置,最后取第三个字符的右6位即获得第四个目标字符位置。
Base64编码对照表
数值 | Base64 字符 | 数值 | Base64 字符 | 数值 | Base64 字符 | 数值 | Base64 字符 |
0 | A | 16 | Q | 32 | g | 48 | w |
1 | B | 17 | R | 33 | h | 49 | x |
2 | C | 18 | S | 34 | i | 50 | y |
3 | D | 19 | T | 35 | j | 51 | z |
4 | E | 20 | U | 36 | k | 52 | 0 |
5 | F | 21 | V | 37 | l | 53 | 1 |
6 | G | 22 | W | 38 | m | 54 | 2 |
7 | H | 23 | X | 39 | n | 55 | 3 |
8 | I | 24 | Y | 40 | o | 56 | 4 |
9 | J | 25 | Z | 41 | p | 57 | 5 |
10 | K | 26 | a | 42 | q | 58 | 6 |
11 | L | 27 | b | 43 | r | 59 | 7 |
12 | M | 28 | c | 44 | s | 60 | 8 |
13 | N | 29 | d | 45 | t | 61 | 9 |
14 | O | 30 | e | 46 | u | 62 | + |
15 | P | 31 | f | 47 | v | 63 | / |
下图显示了“AB1”这个字符串被进行Base64编码的详细过程,为了便于查看,其中每个字节分别以十六进制和十进制进行了显示。
地址:苏州市十梓街1号 18新利体育 纵横研究所联系电话:0512-65243192电子邮箱:ckc@suda.edu.cn
Copyright © 18新利体育 纵横汉字信息技术研究所 2017