当前位置: 首页 > 工具软件 > MORSE > 使用案例 >

Morse(摩斯电码)加解密实现(python)

仲君昊
2023-12-01
  • 原理

    摩斯电码是一种通信方法,它使用点和划的组合来表示字母、数字和符号。点是短脉冲,划是长脉冲,它们之间需要有一个短暂的间隔,而字符之间需要有一个较长的间隔。通过听觉或视觉方式解码摩斯电码可以识别字符。这种通信方法非常简单而且可靠,特别适用于在没有共同语言的情况下进行通信,例如在海上、航空或军事通信中。

    加解密脚本

    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
    
    
 类似资料: