base64算法

Base64编码规则是把3个8位字节(3*8=24)转化为4个6位的字节(4*6=24),之后在6位的前面补两个0,形成8位一个字节的形式。

当代码量不是3的整数倍时,代码量/3的余数自然就是2或者1。转换的时候,结果不够6位的用0来补上相应的位置,之后再在6位的前面补两个0。转换完空出的结果就用就用“=”来补位。

 

例子,把"abcde",base64编码

 

1、把字符串"abcde"对应ascii的值(97,98,99,100,101),分成二进制

01100001  01100010  01100011  01100100  01100101

 

2、把3个8位字节(3*8=24)转化为4个6位的字节(4*6=24)【转换的时候,结果不够6位的用0来补上相应的位置】空出的结果就用就用“=”来补位

011000  010110  001001  100011  011001  000110  010100  =

 

3、之后在6位的前面补两个0,形成8位一个字节的形式。

00011000  00010110  00001001  00100011  00011001  00000110  00010100  =

 

4、转成十进制

24  22  9  35  25  6  20  =

5、根据下表,得到扩展后的每个字节的对应符号,这就是Base64的编码值。

得出结果是:YWJjZGU=

------------------------------------------------------------------

对照表:

      0 A  17 R   34 i   51 z

  1 B  18 S   35 j    52 0

  2 C  19 T   36 k    53 1

  3 D  20 U   37 l   54 2

  4 E  21 V   38 m   55 3

  5 F  22 W    39 n    56 4

  6 G  23 X   40 o    57 5

  7 H  24 Y   41 p   58 6

  8 I   25 Z   42 q   59 7

  9 J   26 a   43 r    60 8

  10 K  27 b   44 s    61 9

  11 L   28 c   45 t    62 +

  12 M   29 d    46 u   63 /

  13 N   30 e   47 v

  14 O   31 f   48 w   

  15 P  32 g    49 x

  16 Q   33 h   50 y



  

posted @ 2014-11-25 11:19  naci  阅读(307)  评论(0编辑  收藏  举报