跳转至

敲击码

什么是敲击码?

敲击码(Tap Code)是一种用敲击次数表示字母的编码方式。它把字母放入一个 5 x 5 方阵中,每个字母由两个数字表示:第一个数字表示行,第二个数字表示列。

因为 26 个英文字母无法完全放入 25 个格子,通常把 C 和 K 放在同一个格子里。

标准方阵

行/列 1 2 3 4 5
1 A B C/K D E
2 F G H I J
3 L M N O P
4 Q R S T U
5 V W X Y Z

例如 A 位于第 1 行第 1 列,所以编码为 11;T 位于第 4 行第 4 列,所以编码为 44。

编码规则

每个字母写成两个数字:

字母 -> 行号 列号

例如:

字母 行 列 编码
C 1 3 13
T 4 4 44
F 2 1 21

所以:

CTF -> 13 44 21

敲击表示法

真实敲击时,通常先敲行数,再停顿,再敲列数。例如 T = 44 可以表示为:

.... ....

其中第一组 4 下表示第 4 行,第二组 4 下表示第 4 列。

解码示例

密文:

21 31 11 22

查表:

编码 行 列 字母
21 2 1 F
31 3 1 L
11 1 1 A
22 2 2 G

得到:

FLAG

常见变形

  • 数字之间没有空格,需要每两个数字切一组。
  • 用点、短横、敲击音数量表示行列。
  • 可能使用 Polybius 方阵变体,字母表顺序或合并字母不一定相同。
  • 有时会把行列顺序反过来,写成“列号行号”。

CTF 识别要点

  • 密文只包含 1-5。
  • 数字通常成对出现,如 13 44 21。
  • 出现敲击、监狱、墙壁、tap 等提示词。
  • 解码出现 C/K 混淆时,需要结合语义判断。