BASE64的理论知识
BASE64是由64个基本字符组成,那么是哪64个基本字符?
在全世界通用的可见字符(62+2)组成64个字符
-
a~z 26个
-
A~Z 26个
-
0~9 10个
-
+
-
/
在全世界通用语言中,单字符占用的最大字节数为3个字节(中文是2个字节,英文是1个字节),一个字节占8位,也就是按二进制来表示最低位00000000、最高位 11111111,转化为十进制,也就是0~255之间。
那么为什么是64个字符呢?接下来我们开始分析
上面讲到3个字节* 一个字节8位=24bit,也就是二进制来表示最低位00000000、最高位 11111111
把这个重新编组,每6位一组共4组 4*6=24
为什么是6位一组呢?
6和8的最小公倍数=24,很科学的一个数字
重排组后最小是000000 、最大是111111,转十进制就是 0 ~63 ,再一算就成了64个数。
| 编码 | 字符 | 编码 | 字符 | 编码 | 字符 | 编码 | 字符 | |||
|---|---|---|---|---|---|---|---|---|---|---|
| 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 | / |
通过64个字符如何进行编码的?
第一步:找到中文在操作系统的字符编码表中对应 十进制代码
第二步:把十进制值转换为二进制
第三步:对二进制进行重组
第四步:每一组的值再转换为十进制,去base64编码表找到其对应的字符,重新编码
下面我们按“零售云技术”进行手动进行base64编码
-
首先查看操作系统的字符编码
windows系统中通过打开cmd输入chcp 可以查看活动代码页结果,然后去查看代码页字符集对照表(自己百度就不帖出来了)
-
根据代码页字符对照表中的字符集查找对应字符集编码表(我这里是GB2312),GB2312汉字编码字符集对照表自己去百度,网上很多,这里直接对搜索的结果进行帖图
下面我们一个字一个字的搜(零)(售)(云)(技)(术)
我们把所有的值都列出来
-
零 C1E0+3
-
售 CAD0+B
-
云 D4C0+6
-
技 BCB0+C
-
术 CAF0+5
以上我们找到的是16进制的数,然后分析转成十进制的数
-
零 49632+3 = 49635
-
售 51920+11 = 51931
-
云 54464+6 = 54470
-
技 48304+12 = 48316
-
术 51952+5 = 51957
把十进制的值转化成二进制
49635=>1100000111100011
51931=>1100101011011011
54470=>1101010011000110
48316=>1011110010111100
51957=>1100101011110101
然后按六位一组进行重组
110000 011110 001111 001010 110110 111101 010011 000110 101111 001011 110011 001010 111101 01 0000
因最一组不够六位使用0进行补齐,然后把每组转化成十进制
48 30 15 10 54 61 19 6 47 11 51 10 61 16
根据十进制的数字在base64码表中找对应的值
由于奇迹就开始了,把上面那些字符拼起来,然后最后加 == 字符结尾,请看下面是不是奇迹!!
wePK29TGvLzK9Q==
如果是奇迹,请关注微信公众号“零售云技术”
也可以通过其它工具进行验证其正确性是否准确!准确也请关注微信公众号“零售云技术”~~
-------------------------
欢迎关注微信公众号“零售云技术”,后续文章继续更新