前言:

  Morse电码(Morsecode)是大家耳熟能详的编码方式,很多人都误认为它是一种加密方式,但其实它是一种编码,因为它并不存在密钥。在只能使用电报长短音传递信息的条件下,使用摩斯电码是为了方便信息传输。

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

根据题目提示,该方式为摩斯电报,所以我们可以先将1和0转换成 . - ,我们可以通过编写代码将01替换,下面给出python代码

思路:

1.读取文本

2.做0和1换成 . - 的处理

3.利用正则匹配,将以空格为划分的摩斯电报提取出来

4.然后匹配Morse密码字典

5.由于我用的字典是大写的,提交flag是小写的,所以我将其转换成小写

6.字符串拼接,拼出flag

 1 import re
2
3 with open(r'F:\桌面\tmp\d622fe4aa5c645e8912acdfec1515803.txt','r') as f:
4 data=f.read()
5 print(data)
6 data1 = data.replace('1','.')
7 data1 = data1.replace('0','-')
8
9 data2 = data.replace('1','-')
10 data2 = data2.replace('0','.')
11 print(data1)
12 print(data2)
13
14 code_dict = {'A': '.-', 'B': '-...', 'C': '-.-.', 'D': '-..', 'E': '.', 'F': '..-.', 'G': '--.', 'H': '....',
15 'I': '..', 'J': '.---', 'K': '-.-', 'L': '.-..', 'M': '--', 'N': '-.', 'O': '---', 'P': '.--.',
16 'Q': '--.-', 'R': '.-.', 'S': '...', 'T': '-', 'U': '..-', 'V': '...-', 'W': '.--', 'X': '-..-',
17 'Y': '-.--', 'Z': '--..', '0': '-----', '1': '.----', '2': '..---', '3': '...--', '4': '....-',
18 '5': '.....', '6': '-....', '7': '--...', '8': '---..', '9': '----.', '.': '.-.-.-', ':': '---...',
19 ',': '--..--', ';': '-.-.-.', '?': '..--..', '=': '-...-', "'": '.----.', '/': '-..-.', '!': '-.-.--',
20 '——': '-....-', '-': '..--.-', '"': '.-..-.', '(': '-.--.', ')': '-.--.-'}
21 def Morsedecode(data):
22
23 m = ''
24 pattern = re.compile('[.-]{1,4}')
25 result = pattern.findall(data)
26
27 for i in result:
28 for j in code_dict:
29 if code_dict[j] == i:
30 m += j
31 return m
32
33 str = Morsedecode(data2).lower()
34 print('cyberpeace{'+str+'}')

下面给出最后代码运行的结果:

通过运行结果可以看出,会解成两种形式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

>> .. ... -.- --- - .-.- ... .-- - -- --- --- ... -- .- . - -.- - --- . -- .- ..- 

>> -- --- .-. ... . -.-. --- -.. . .. ... ... --- .. -. - . .-. . ... - .. -. --.

>> cyberpeace{morsecodeissointeresting}

 参考链接:

https://blog.csdn.net/dark_cy/article/details/102485043?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.channel_param

最新文章

  1. NOI上看到的几个小学奥数
  2. Emmet (Zen Coding) 官方文档中HTML语法的总结
  3. android录像增加时间记录(源码里修改)
  4. Unity2D多分辨率屏幕适配方案(转载)
  5. QT基本使用
  6. [HDOJ5773]The All-purpose Zero(贪心,DP)
  7. (图 BFS)走迷宫
  8. JSF 2 textbox example
  9. android 如何解决模块之间的通讯的耦合问题
  10. mysql基础操作整理(一)
  11. 巧用Session Manager还原Firefox丢失会话
  12. python模块基础之OS模块
  13. Android 状态栏通知Notification、NotificationManager简介
  14. Jetbrains 系列神器
  15. 【算法系列学习】巧妙建图,暴搜去重 Counting Cliques
  16. ADO.NET中的五大对象
  17. node.js核心模块
  18. 过滤器实现 (cookie认证)
  19. pdf流文件的展示、下载、打印;html转为pdf
  20. Git学习记录 力做全网最强入门教程

热门文章

  1. C++的switch/case,需要大括号
  2. gauva cache
  3. hierarchical-clustering
  4. CF1033E 题解
  5. 类Class
  6. ABAP 范围表 range table
  7. VUE学习-计算属性与监听器
  8. PAT-basic-1026 程序运行时间 java
  9. Python使用requests和requests_toolbelt上传文件
  10. 打开part文件夹