一.Base家族及其特点
(1)Base16
-
1.编码后的字符只会在(0-9,A-F 共16个)中出现。
-
2.编码后的字符为源字符的两倍,4个bit一组,而1字节8bit,所以base16不可能用等号填充。
(2)Base32
-
1.编码后的字符只会由大写字母(A-Z)和数字234567 32个字符组成。
-
2.因为base32 5bit为一组,所以编码长度必须是40bit的倍数(5和8的最小公倍数)
-
3.必须为40bit的倍数,如果不足的话,会在第一个不满足5bit的小组进行补0,然后进行编码,在结果补上占位符=,一个等号5bit,最多出现6个0 1 3 4 6
(3)Base64
-
1.编码后的字符只会在A-Z a-z 0-9(共62个)另外加上+/两个符号。3个字节由4个base64单元来表示,很高的编码效率了。
-
2.如果要编码的字节数不能被3整除,最后会多出1个或2个字节,则用占位符= (一个代表一个字节)所以最多出现两个等号,一般会出现一个或者两个=。