【MISC】BASE系列加密解析

见到了一题比较离谱的 base64 题目,VNCTF2022-Web-gocalc0,可能是我太菜的原因,明明 hint 告诉我,flag 在 session 里面,我却怎样都 Base64 出不来,一直说解密出错。
这题对于 Web 没有一点难度,姑且放在 MISC 分类里面。

Base16

使用字符:数字 (0 ~ 9),字母 (A ~ F)
Base16 先获取输入字符串每个字节的二进制值(不足 8bit 在高位补 0),然后将其串联进来,再按照 4bit 一组进行切分 (2^4=16),将每组二进制数分别转换成十进制,并对应下述编码。
即二进制转十六进制,对应下表

编码 编码 编码 编码
0 0 4 4 8 8 12 C
1 1 5 5 9 9 13 D
2 2 6 6 10 A 14 E
3 3 7 7 11 B 15 F

Base32

使用字符:数字 (2 ~ 7),字母 (A ~ Z),填充(=)
排除了视觉上容易混淆的字符,因此可以准确的人工录入,例如 1 (I),8 (B),0 (O)
Base32 先获取输入字符串每个字节的二进制值(不足 8bit 在高位补 0),然后将其串联进来,再按照 5bit 一组进行切分 (2^5=32),将每组二进制数分别转换成十进制,并对应下述编码。
Base32 按 5bit 切分的二进制数据必须是 40bit 的倍数(5 和 8 的最小公倍数)
例如只用到两组共 10bit,还差 30bit 达到 40bit,按照 5bit 一组还需 6 组,则在末尾填充 6 个 "=",但是一般来说可以省去
对应下表

编码 编码 编码 编码
0 A 8 I 16 Q 24 Y
1 B 9 J 17 R 25 Z
2 C 10 K 18 S 26 2
3 D 11 L 19 T 27 3
4 E 12 M 20 U 28 4
5 F 13 N 21 V 29 5
6 G 14 O 22 W 30 6
7 H 15 P 23 X 31 7
填充 =

Base64

使用字符:数字 (0 ~ 9),字母 (A ~ Z),字母 (a ~ z),符号 (+,/),后缀 (=)
Base64 先获取输入字符串每个字节的二进制值(不足 8bit 在高位补 0),然后将其串联进来,再按照 6bit 一组进行切分 (2^6=64),将每组二进制数分别转换成十进制,并对应下述编码。
由于二进制数据是按照 8bit 一组进行传输,因此 Base64 按照 6bit 一组切分的二进制数据必须是 24bit 的倍数(6 和 8 的最小公倍数)
24bit 就是 3 个 byte,若原字节序列数据长度不是 3 的倍数时且剩下 1 个输入数据,则在编码结果后加 2 个 =;若剩下 2 个输入数据,则在编码结果后加 1 个 =

编码 编码 编码 编码
0 A 16 Q 32 g 48 w
1 B 17 R 33 h 49 x
2 C 18 S 34 i 50 y
3 D 19 T 35 j 51 z
4 E 20 U 36 k 52 0
5 F 21 V 37 l 53 1
6 G 22 W 38 m 54 2
7 H 23 X 39 n 55 3
8 I 24 Y 40 o 56 4
9 J 25 Z 41 p 57 5
10 K 26 a 42 q 58 6
11 L 27 b 43 r 59 7
12 M 28 c 44 s 60 8
13 N 29 d 45 t 61 9
14 O 30 e 46 u 62 +
15 P 31 f 47 v 63 /

Base58

使用字符:数字 (除 0),大写字母 (除 O,I),小写字母 (除 l)
base58 编码相比于 base64 编码去掉了几个看起来会产生歧义的字符以及不方便选择的字符 (+,/)
因为 58 不是 2 的整次幂,所以没有使用类似 base64 编码中使用直接截取 3 个字符转 4 个字符 (2^6=64) 的方法进行转换,而是采用我们数学上经常使用的进制转换方法 —— 辗转相除法
本质上,base64 编码是 64 进制,base58 是 58 进制

编码 编码 编码 编码
0 1 15 G 30 X 45 n
1 2 16 H 31 Y 46 o
2 3 17 J 32 Z 47 p
3 4 18 K 33 a 48 q
4 5 19 L 34 b 49 r
5 6 20 M 35 c 50 s
6 7 21 N 36 d 51 t
7 8 22 P 37 e 52 u
8 9 23 Q 38 f 53 v
9 A 24 R 39 g 54 w
10 B 25 S 40 h 55 x
11 C 26 T 41 i 56 y
12 D 27 U 42 j 57 z
13 E 28 V 43 k
14 F 29 W 44 m

Base85,91,92,100 编码

这些编码不太常用,等到什么时候见到了就来填

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇