Base64¶
前置知识¶
二进制、十六进制
目标¶
掌握 Base64 编码原理,掌握编码和解码实例(Base64 不是加密算法)
What¶
Base64(基底64)是一种基于64个可打印字符来表示二进制数据的表示方法。
由于 \(log_2{64} = 6\),所以每 6 个比特为一个单元,对应某个可打印字符。
3 个字节相当于 24 个比特,对应于 4 个 Base64 单元,即 3 个字节可由 4 个可打印字符来表示。
实例¶
编码“Man”的结果为
TWFu

如果要编码的字节数不能被3整除,最后会多出1个或2个字节,
那么可以使用下面的方法进行处理:先使用0字节值在末尾补足,使其能够被3整除,然后再进行Base64的编码。
在编码后的Base64文本后加上一个或两个
=号,代表补足的字节数。也就是说,当最后剩余 1 个字节时,编码出 2 个 Base64 字符,并附加两个等号;
当最后剩余 2 个字节时,编码出 3 个 Base64 字符,并附加一个等号。补入的 0 位只用于分组,
=是填充标记。

例题,CSP-J 2021初赛¶
普及组初赛采用了相同题目的简化版本





例题,CSP-S 2021初赛¶



