原理
摩斯电码是一种通信方法,它使用点和划的组合来表示字母、数字和符号。点是短脉冲,划是长脉冲,它们之间需要有一个短暂的间隔,而字符之间需要有一个较长的间隔。通过听觉或视觉方式解码摩斯电码可以识别字符。这种通信方法非常简单而且可靠,特别适用于在没有共同语言的情况下进行通信,例如在海上、航空或军事通信中。
加解密脚本
morse_table = {
'A': '.-', 'N': '-.', '.': '.-.-.-', '+': '.-.-.', '1': '.----',
'B': '-...', 'O': '---', ',': '--..--', '_': '..--.-', '2': '..---',
'C': '-.-.', 'P': '.--.', ':': '---...', '$': '...-..-', '3': '...--',
'D': '-..', 'Q': '--.-', '"': '.-..-.', '&': '.-...', '4': '....-',
'E': '.', 'R': '.-.', '\'': '.----.', '/': '-..-.', '5': '.....',
'F': '..-.', 'S': '...', '!': '-.-.--', '6': '-....',
'G': '--.', 'T': '-', '?': '..--..', '7': '--...',
'H': '....', 'U': '..-', '@': '.--.-.', '8': '---..',
'I': '..', 'V': '...-', '-': '-....-', '9': '----.',
'J': '.---', 'W': '.--', ';': '-.-.-.', '0': '-----',
'K': '-.-', 'X': '-..-', '(': '-.--.',
'L': '.-..', 'Y': '-.--', ')': '-.--.-',
'M': '--', 'Z': '--..', '=': '-...-',
}
morse_dir = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.!@#$%^&*()_+:"?/=,\''
def morse_encrypt(plaintext: str) -> str:
ciphertext = ''
for s in plaintext:
if s.upper() not in morse_table:
return "无法解密"
ciphertext += ''.join(morse_table.get(s.upper())) + " "
return ciphertext
def morse_decrypt(plaintext: str) -> str:
table = plaintext.split(" ")
plaintext = ''
for s in table:
for i in morse_dir:
if morse_table.get(i) == s:
plaintext += ''.join(i)
return plaintext