中文信息处理技术专栏

中文信息处理技术专栏


首页  中文信息处理技术专栏

  • Base64编码
  • 时间: 2017-05-03    阅读数: 18
  • Base64编码

    Base64属于MIMEMultipurpose Internet Mail Extensions,多功能Internet 邮件扩充服务),它是被多媒体电子邮件和 WWW 超文本广泛使用的一种编码标准,用于传送诸如图形、声音和传真等非文本数据。在RFC1341中详细定义了MIMEBase64是现今在互联网上应用最多的一种编码,几乎所有的电子邮件软件头把它作为默认的二进制编码,它几乎已经成了现今电子邮件编码的代名词。

    下面就是一个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号 苏州大学纵横研究所联系电话:0512-65243192电子邮箱:ckc@suda.edu.cn

Copyright © 苏州大学纵横汉字信息技术研究所 2017