所以我正在研究即将到来的考试,还有这个问题:给定一个大小为31字节的二进制文件,将其编码为base64后会是什么大小?
解决方案老师给我们的是(40 + 4)字节,因为它需要是4的倍数。
我无法遇到这个解决方案,我不知道如何解决这个问题,所以我希望有人可以帮我解决这个问题。
答案 0 :(得分:2)
因为base 64编码将输入数据分成六位块而一个块使用ascii代码。 如果输入有31个字节,则需要31 * 8/6位块进行编码。根据经验,输入中每三个字节输出有4个字节 如果输入数据不是6位的倍数,则base64编码用0位填充最后一个块 在你的例子中,你有42个6位的块,最后填充缺少0位。 基本64算法实现用'='符号填充编码数据,以便具有4的倍数作为最终结果。