English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Traduttore di codice Morse in Python

Nella criptografia viene utilizzato il traduttore del codice Morse. È stato chiamato da Samuel FB Morse. Attraverso questa tecnologia, convertiamo il messaggio in una serie di punti, virgole, '-', '/'.

Questa tecnica è molto semplice. Ogni lettera inglese rappresenta una serie di punti, virgole, '/','-'.加密消息时,我们只是从消息到符号,然后从符号到英语解密消息。

Ecco il dizionario:

'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':'-----', ', ':'--..--', '.':'.-.-.-'
'?':'..--..', '/':'-..-.', '-':'-.....'
'(':'-.--.', ')':'-.--.-'}

Esempio

Il messaggio è PYTHON-PROGRAM
L'output è .--. -.-- - .... --- -. -....- .--. .-. --- --. .-. -. --

Algoritmo

Codifica

Step1: Data una stringa, inizialmente estraiamo ogni lettera dalla parola e la abbiniamo al dizionario del codice Morse, poi consideriamo il codice corrispondente alla lettera.
Step2: Il passo successivo è memorizzare il codice in una variabile. E dobbiamo seguire che uno spazio deve essere mantenuto tra ogni codice Morse.
Step3: Dovrebbero essere mantenuti due spazi tra ogni parola.

Decodifica

Step1: Prima di tutto, aggiungiamo uno spazio alla fine della stringa.
Step2: Ora esploriamo ogni lettera del messaggio fino a quando non incontriamo uno spazio.
Step3: Quando otteniamo spazio, controlliamo con il dizionario del codice Morse e lo memorizziamo in una variabile.
Passo4: Quando si ottengono 2 spazi consecutivi, aggiungeremo un altro spazio alla nostra variabile che contiene la stringa decodificata.
Passo5: Quando si ottiene l'ultimo spazio del messaggio, significa che questo è l'ultimo carattere del generatore di codice Morse.

Esempio di codice

# -*- coding: utf-8 -*-
"""
Creato il Mar 2 Ott 11:21:31 2018
@autore: Satyajit
"""
# Dizionario che rappresenta la tabella del codice 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':'--..'
   '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
# Questa funzione viene utilizzata per decifrare
# Codice Morse in inglese
def decryption(message):
   message += ' '
   decipher = ''
   mycitext = ''
   for myletter in message:
      # Verifica lo spazio
      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)
# Esegue la funzione principale
if __name__ == '__main__': main()

Risultato di output

.--. -.-- - ... --- -. -....- .--. .-. --- --. -. -.- --
PYTHON-PROGRAM