모스 부호 변환기는 암호화에 사용됩니다. 그것은 Samuel F. B. Morse에 의해 명명되었습니다. 이 기술을 사용하여 메시지를 일련의 점, 쉼표, "-","/"로 변환합니다.
이 기술은 매우 간단합니다. 영어의 모든 알파벳은 ".",",","/","-"의 시리즈를 나타냅니다. 우리는 메시지에서 기호로 메시지를 암호화하고 기호에서 영어로 암호를 해독합니다.
사전은 아래와 같습니다.
'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