攻防世界 Morse

本文介绍了如何解密攻防世界中的一段摩斯密码。通过观察0和1的分布,确定其为摩斯密码,并提供了在线转换网址及Python代码实现解码。解密后的结果是'cyberpeace{morsecodeissointeresting}'。
ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

攻防世界 Morse

在这里插入图片描述
下载附件
11 111 010 000 0 1010 111 100 0 00 000 000 111 00 10 1 0 010 0 000 1 00 10 110
(看构成仅有0,1,可能为摩斯密码,或者转为ascii,又看到0,1分布有空格隔开,且没有规律,判定为摩斯密码)
摩斯密码的解法:
(将1-为将0为.,或者互换,去在线转换网址查看)
网址: 在线转换
同理也可以用python编程:
Python:
#!/usr/bin/env python3
CODE_TABLE = {
# 26 个英文字符
‘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’: ‘–…’,

# 10 个数字
'0': '-----', '1': '.----', '2': '..---',
'3': '...--', '4': '....-', '5': '.....',
'6': '-....', '7': '--...', '8': '---..',
'9': '----.',

# 16 个特殊字符
',': '--..--', '.': '.-.-.-', ':': '---...', ';': '-.-.-.',
'?': '..--..', '=': '-...-', "'": '.----.', '/': '-..-.',
'!': '-.-.--', '-': '-....-', '_': '..--.-', '(': '-.--.',
')': '-.--.-', '$': '...-..-', '&': '. . . .', '@': '.--.-.'

# 你还可以自定义

}

def morsedecode(morse):
msg =’’
codes = morse.split(’ ‘)
for code in codes:
if code ==’’:
msg += ’ ’
else:
UNCODE =dict(map(lambda t:(t[1],t[0]),CODE_TABLE.items()))
msg += UNCODE[code]
return msg
ciphertext =“11 111 010 000 0 1010 111 100 0 00 000 000 111 00 10 1 0 010 0 000 1 00 10 110”

ciphertext = ciphertext.replace(‘1’,’-’)
ciphertext = ciphertext.replace(‘0’,’.’)

FLAG = morsedecode(ciphertext)
flag = FLAG.lower()
flag = ‘cyberpeace{’+flag+’}’
print('flag is ',flag)

跑python的结果:
('flag is ', ‘cyberpeace{morsecodeissointeresting}’)

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

### 关于攻防世界 Crypto 类别下的 Morse 解题思路 在攻防世界的Crypto类别中,Morse密码是一种常见的经典加密方式。以下是针对该类别的解题思路及相关资源: #### 1. **Morse 密码基础** Morse密码通过点(`.`)和划线(`-`)来表示字母、数字和其他符号。通常情况下,在二进制形式中,`0` 表示 `.`,而 `1` 表示 `-`。根据给定的字符串,可以将其按照特定规则分组并映射到对应的字符表[^3]。 对于题目中的输入序列: ```plaintext 11 111 010 000 0 1010 111 100 0 00 000 000 111 00 10 1 0 010 0 000 1 00 10 110 ``` 可以通过以下步骤完成解密过程: - 将每一位替换为相应的 Morse 符号 (`0 -> .`, `1 -> -`)。 - 使用标准 Morse 字符对照表逐一匹配字符。 最终结果为:`morsecodeissointeresting`。 --- #### 2. **自动化解密工具** 为了简化手动计算的过程,可利用现成的在线工具或编写脚本来实现自动化的解密操作。例如,基于 Python 的简单解密程序如下所示: ```python # 定义 Morse 对照表 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" } # 输入数据 input_data = "11 111 010 000 0 1010 111 100 0 00 000 000 111 00 10 1 0 010 0 000 1 00 10 110" # 替换 '0' 和 '1' binary_morse_mapping = input_data.replace('0', '.').replace('1', '-') # 切割为空格分割的部分 split_parts = binary_morse_mapping.split() # 映射回明文 result = ''.join([morse_code_dict.get(part, '') for part in split_parts]) print(result.lower()) # 输出小写结果 ``` 运行此代码会返回预期的结果:`morsecodeissointeresting`。 --- #### 3. **Flag 提交格式** 在提交 Flag 时需注意其具体要求。一般而言,Flag 需要遵循指定模板,如 `cyberpeace{}`。因此,将解密后的字符串转换为小写字母后嵌入模板即可形成完整的 Flag: ```plaintext cyberpeace{morsecodeissointeresting} ``` --- #### 4. **其他相关资源** 除了直接解决 Morse 密码外,还可以参考一些额外的学习材料和技术文档以加深理解: - 在线 Morse 编码/解码器[^1] 可用于快速验证手动生成的结果。 - 攻防世界官方 Wiki 页面提供了详细的分类说明以及每种类型的典型实例[^2]。 - 如果遇到更复杂的组合型编码,则可能涉及 Base64、Unicode 或 ASCII 转换链路分析[^4]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值