Python中的摩尔斯电码翻译器
密码术中使用了摩尔斯电码翻译器。它由塞缪尔·FB·摩尔斯(SamuelFBMorse)命名。通过这种技术,我们将消息转换为一系列的点,逗号,“-”,“/”。
此技术非常简单。每个英文字母表示一系列“。”,“,”,“/”,“-”。我们只是从消息到符号加密消息,然后从符号到英语解密消息。
字典如下
'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':'.----', '2':'..---', '3':'...--', '4':'....-', '5':'.....', '6':'-....', '7':'--...', '8':'---..', '9':'----.', '0':'-----', ', ':'--..--', '.':'.-.-.-', '?':'..--..', '/':'-..-.', '-':'-....-', '(':'-.--.', ')':'-.--.-'}
示例
Message is PYTHON-PROGRAM Output is .--. -.-- - .... --- -. -....- .--. .-. --- --. .-. .- --
算法
加密
Step1: Given a string, atfirst we extract each letter from the word and match with the Morse Code dictionary, then we consider the code corresponding the letter. Step2: Next step is to store the code into a variable. And we have to follow that one space should be maintained between every Morse code. Step3: Two spaces should be maintained in between every word.
解密
Step1: First we add a space at the end of the string. Step2: Now we traverse each letter of the message until space is not encountered. Step3: When we get space then check with Morse Code Dictionary and store in a variable. Step4: When get 2 consecutive spaces we will add another space to our variable containing the decoded string. Step5: When get last space of the message that means this is the last letter of Morse Code Generator.
范例程式码
# -*- coding: utf-8 -*- """ Created on Tue Oct 2 11:21:31 2018 @author: Satyajit """ # Dictionary representing the morse code chart 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':'--..', '1':'.----', '2':'..---', '3':'...--', '4':'....-', '5':'.....', '6':'-....', '7':'--...', '8':'---..', '9':'----.', '0':'-----', ', ':'--..--', '.':'.-.-.-', '?':'..--..', '/':'-..-.', '-':'-....-', '(':'-.--.', ')':'-.--.-' } def encryption(message): my_cipher = '' for myletter in message: if myletter != ' ': my_cipher += MORSE_CODE_DICT[myletter] + ' ' else: my_cipher += ' ' return my_cipher # This function is used to decrypt # Morse code to English def decryption(message): message += ' ' decipher = '' mycitext = '' for myletter in message: # checks for space if (myletter != ' '): i = 0 mycitext += myletter else: i += 1 if i == 2 : decipher += ' ' else: decipher += list(MORSE_CODE_DICT.keys())[list(MORSE_CODE_DICT .values()).index(mycitext)] mycitext = '' return decipher def main(): my_message = "PYTHON-PROGRAM" output = encryption(my_message.upper()) print (output) my_message = ".--. -.-- - .... --- -. -....- .--. .-. --- --. .-. .- -- " output = decryption(my_message) print (output) # Executes the main function if __name__ == '__main__': main()
输出结果
.--. -.-- - .... --- -. -....- .--. .-. --- --. .-. .- -- PYTHON-PROGRAM