题目描述

解题步骤

附件中给出了一串由点(.)和划(-)组成的字符串:
.. .-.. --- ...- . -.-- --- ..-
我们需要分析并解密这段信息,找出隐藏的 flag。

观察分析

观察这串字符,它由 .- 组成,并以空格分隔。这是典型的 摩斯密码(Morse Code) 格式。

什么是摩斯密码?

摩斯密码是一种早期的数字化通信方式,由塞缪尔·摩尔斯(Samuel Morse)在19世纪发明,用于电报传输。

  • 每个英文字母、数字或标点符号都被编码为一系列 点(·)划(–)
  • 点表示短信号(dot),划表示长信号(dash)。
  • 字符之间用 空格 分隔,单词之间通常用 / 或多个空格分隔。
字母 摩斯码
A .-
B -...
C -.-.
D -..
E .
F ..-.
G --.
H ....
I ..
J .---
K -.-
L .-..
M --
N -.
O ---
P .--.
Q --.-
R .-.
S ...
T -
U ..-
V ...-
W .--
X -..-
Y -.--
Z --..

手动解密过程

我们来逐个解密题目中的摩斯码:

1
.. .-.. --- ...- . -.-- --- ..-

摩斯码 对应字母
.. I
.-.. L
--- O
...- V
. E
-.-- Y
--- O
..- U

连起来就是:

1
I L O V E Y O U

去掉空格:

ILOVEYOU

1
flag{ILOVEYOU}

Python 自动化解密脚本

虽然本题很简单,但我们可以写一个 Python 脚本来自动解密摩斯密码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 摩斯密码解密脚本
MORSE_CODE_DICT = {
'.-': 'A', '-...': 'B', '-.-.': 'C', '-..': 'D', '.': 'E',
'..-.': 'F', '--.': 'G', '....': 'H', '..': 'I', '.---': 'J',
'-.-': 'K', '.-..': 'L', '--': 'M', '-.': 'N', '---': 'O',
'.--.': 'P', '--.-': 'Q', '.-.': 'R', '...': 'S', '-': 'T',
'..-': 'U', '...-': 'V', '.--': 'W', '-..-': 'X', '-.--': 'Y',
'--..': 'Z'
}

def morse_decode(morse):
words = morse.strip().split(' ') # 单词间用空格分隔
decoded = ''
for word in words:
letters = word.split(' ')
for letter in letters:
if letter in MORSE_CODE_DICT:
decoded += MORSE_CODE_DICT[letter]
decoded += ' '
return decoded.strip()

# 输入题目中的摩斯码
morse_input = ".. .-.. --- ...- . -.-- --- ..-"
flag = morse_decode(morse_input)
print("解密结果:", flag) # 输出: I LOVE YOU
print("Flag 可能是: flag{" + flag.replace(" ", "") + "}")