1. 程式人生 > 實用技巧 >Crypto入門 (三)Morse

Crypto入門 (三)Morse

前言:

  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