手算base64
base64人类群星闪耀时
CSP2021考了……
什么鬼……

不得不大骂一声——您有毒吧
base64是什么
Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。可查看RFC2045~RFC2049,上面有MIME的详细规范。
Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。采用Base64编码具有不可读性,需要解码后才能阅读。
Base64由于以上优点被广泛应用于计算机的各个领域,然而由于输出内容中包括两个以上“符号类”字符(+, /, =),不同的应用场景又分别研制了Base64的各种“变种”。为统一和规范化Base64的输出,Base62x被视为无符号化的改进版本。
聪明的你肯定发现了,以上来自:base64_百度百科 (baidu.com)
base64的意义
有些情况下传输不可见字符不方便。比如一个纯文本协议,二进制中可能会出现被当做控制字符处理的部分。这样引起传输失败。
又由于每个地方的路由存在差异,无法统一,则需要base64这么一个编码方式。
因为base64都是可见字符(A~Z,a~z,0~9,+,/),所以不会出现以上问题。
请注意,base64并不是加密算法,不适用于加密通信。
base64的表格
首先,base64有以下字符对应表:
| 十进制下标 | 字符 |
|---|---|
| 0 | A |
| 1 | B |
| 2 | C |
| 3 | D |
| 4 | E |
| 5 | F |
| 6 | G |
| 7 | H |
| 8 | I |
| 9 | J |
| 10 | K |
| 11 | L |
| 12 | M |
| 13 | N |
| 14 | O |
| 15 | P |
| 16 | Q |
| 17 | R |
| 18 | S |
| 19 | T |
| 20 | U |
| 21 | V |
| 22 | W |
| 23 | X |
| 24 | Y |
| 25 | Z |
| 26 | a |
| 27 | b |
| 28 | c |
| 29 | d |
| 30 | e |
| 31 | f |
| 32 | g |
| 33 | h |
| 34 | i |
| 35 | j |
| 36 | k |
| 37 | l |
| 38 | m |
| 39 | n |
| 40 | o |
| 41 | p |
| 42 | q |
| 43 | r |
| 44 | s |
| 45 | t |
| 46 | u |
| 47 | v |
| 48 | w |
| 49 | x |
| 50 | y |
| 51 | z |
| 52 | 0 |
| 53 | 1 |
| 54 | 2 |
| 55 | 3 |
| 56 | 4 |
| 57 | 5 |
| 58 | 6 |
| 59 | 7 |
| 60 | 8 |
| 61 | 9 |
| 62 | + |
| 63 | / |
| Padding | = |
Padding是什么意思呢?我们到时候会举个例子。
base64的流程
我们先把字符按照ascii编码:
| ascii | 字符 |
|---|---|
| 01001111 | O |
| 01110010 | r |
| 01111010 | z |
由于考场上我们不可能找到ascii表,所以我们要熟记:
| ascii | 字符 |
|---|---|
| Space | 32 |
| 0 | 48 |
| A | 65 |
| a | 97 |
如果考了其它的只能说出题人丧心病狂。
然后我们知道,ascii可以转化为8位二进制。那么我们可以得到以下表格:

然后我们按照每6位为一字符按照base64下标转换为新的字符串:

然后我们可以得到base64的新编码了!!
base64的Padding
那你肯定会说,如果不足刚好可以用6分开怎么办呢?
例如:

怎么办呢?我们可以选择补上0:

但是我们可能会发现,如果解码时混淆了怎么办呢?
所以我们需要加上Padding—— =
则变成:

如果我们要补上两位0:

然后你的一部分分就拿到了。
剩下就是解码了:
举个例子:cXB6Yw==
首先,对于原字符串,我们需要对其二进制编码。
如果结尾有 =。那么我们需要相应的减去结尾的0。
如例子:二进制编码后为:

然后因为后面有两个等号,所以要删去0000:

结束,然后你就很容易的做出那道题了,耶!
base64真题

这个暴力模拟,当你看到第一位时就发现错了……
白搞了!!!!!啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊!!!!

这个也是第一次判倍数排除ac。然后发现bd倒数第五位不同,单独求出即可
白算了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
草稿可以看最上面那张图,--- 上面的是第一题,下面的是第二题。
重申:您有毒!!
祝大家CSP2023 RP++。
……额,CSP2024,2025,2026,2027,总之都 RP++。

浙公网安备 33010602011771号