关于base64编码原理,具体可以上网查,这里可以简单地说成是将三个原文的字符用四个字符来替换,原理是:3个8位数转化为4个6位数,每个6位数仅表示‘a’~‘z’,'A'~'Z','0'~'9','+' 和 '\' ,共64个。所以如果原文的字符不是三的倍数,则需要在编码后的字符串末尾补上1~2个‘=’字符,解码的时候会自动去掉。所以base64编码后字符数是四的倍数。
图解:
举个例子,如将字符串 “flag.txt” 进行base64编码,由于只有8个字符数,不是3的倍数,因此需要在编码时加多一个 ‘=’ (若只有7个字符数则需加2个 ‘=’ ),最终编码为 “ZmxhZy50eHQ=”。
参考资料:Python模块——base64 - 龙~白 - 博客园 (cnblogs.com)