Base64加密过的字符串为什么会有=号

=代表补了0的个数,因为Base64加密过后的字符长度要比以前长1/3,而3的余数(模)有:0,1,2。因此加密后的字符串可能要补上0、1或者2个0,用=表示,即0、1或2个=

另外,编码后的字符串长度最短都为4位,如“1”的ASCII 为49(0x31),编码后为“MQ==”,如果对于少于4位的字符串进行Base64解码会出错。而且经过Base64编码后的字符串长度都是4的整数倍,因为假设原字符串长n,编码后长为m,则n*8 = m*6 => m=n*4/3 。当有余数时,可以填充字符补齐。

另外,Base64后的字符串被回车换行分解后,并不影响其Base64解密,这可能跟具体的解密算法有关。

原文地址:https://www.cnblogs.com/ningj3/p/1409000.html