base64编码原理 2019-03-08

1.base64编码对照表标准如下:


base64编码表

2.base64 编码原理:

ps:  1字节byte = 8bit位  -> 一字节可存储一个汉字,两个英文字母。


base64编码一共64个字符,可以用6个bit位(2^6 = 64)表示出来,一字节由8个bit位,多余两位用0填充。(注:一个base64字符仍有8个bit位,有效部分为右六位)。

Base64编码时,是将3个字节转变为4个字节,最终得到的字节数必然是4的倍数。

接下来我们通过实例来分析:(将字符csf转换成base64编码

①字符转ASCII码(ASCII码对照表见附图)

c=>99, s=>115, f=>102

附图 ASCII编码对照表

②ASCII码转成二进制

99=>0110 0011,115=>0111 0011,102=>0110 0110

③三个字节(3x8=24bit位)转成四个字节(4x6=24bit位),并在每个6bit位前补两个0,重新变成8bit位的字节

转换结果:011000   110111   001101   100110

补零:---> 00011000    00110111    00001101    00100110

④将补零后的结果转换成十进制

00011000 => 2^4+2^3 = 24

00110111 => 55

00001101 =>13

00100110 =>38

⑤对照上方的base64编码表

得到结果为:Y3Nm

ps:值得注意的是,base64编码过程最后可能碰到不足三位的情况,这种情况在转化成6位时用0补位,转换后若六位全为‘空’,则转换结果用=号代替。如下图:

M编码结果为TQ==


同理 ,字符L(ASCII码为76)转换结果为TA==。


以上纯属个人理解。

你可能感兴趣的:(base64编码原理 2019-03-08)