1、主要用于邮件,加密后的密文只包括大小写字母,10个数字和+ / = ,共计65个,其中==只作为占位符,在密文最后出现,所以只有64个字符,而1byete=8bit,1byte能表示256,而为了只能表示64,所以只取1byte只取6bit,然后在前面补2bit的0,即可。这样如果原来三个字节的明文,编码后,变成4byte密文,也就是变长了1/3.
如果明文字符数不是3的整数倍,则最后肯定还剩有字符,则后面也要补足0,结果生成了==
例如A:0x41 二进制0100 0001 前6位010000 补高位两个0为0001 0000 即十进制的16对应Q。 剩下的二位01,所以后面需要补足2byte,这样才能有18位,可以被6整除。01 0000 0000 0000 0000进行编码:0001 0000 编码为Q,后面为两个占位符,用==填充。
2、Base64是把3个字节变成4个可打印字符,所以Base64编码后的字符串一定能被4整除;
3、等号一定用作后缀,且数目一定是0个、1个或2个。这是因为如果原文长度不能被3整除,Base64要在后面添加\0凑齐3n位。为了正确还原,添加了几个\0就加上几个等号。显然添加等号的数目只能是0、1或2;
4、严格来说base64不能算是一种加密,只能说是编码转换。