base64编码原理 2019-03-08
2019-03-07 本文已影响0人
游走在城市的鱼
1.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码对照表见附图)
附图 ASCII编码对照表c=>99, s=>115, f=>102
②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==。
以上纯属个人理解。