python之摩斯密码加解密

部署运行你感兴趣的模型镜像

刚学了摩斯密码,自己用python写一遍,顺便练习python,下面直接粘贴代码

'''
摩斯密码加解密
加密后生成一个列表
同样,解密也需要输入一个列表
'''

#生成加密字典
mos_dict ={'0': '- - - - -', '1': '.- - - -', '2': '..- - -', '3': '...- -', '4': '....-', '5': '.....', '6': '- ....', '7': '- - ...',
           '8': '- - - ..', '9': '- - - - .', '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': '- - ..',
           '.': '.- .- .-', ',': '- - ..- -', ';': '- .- .- .', '?': '..- - ..', '!': '- .- .- -', '(': '- .- - .', ')': '- .- - .-',
           '$': '...- ..-', '&': '....', '@': '.- - .- .'}
#生成解密字典
dmos_dict = {'- - - - -': '0', '.- - - -': '1', '..- - -': '2', '...- -': '3', '....-': '4', '.....': '5', '- ....': '6', '- - ...': '7',
             '- - - ..': '8', '- - - - .': '9', '-': 'T', '- ..': 'D', '- .- .': 'C', '.': 'E', '..- .': 'F', '- - .': 'G', '...': 'S',
             '..': 'I', '.- - -': 'J', '- .-': 'K', '.- ..': 'L', '- -': 'M', '- .': 'N', '- - -': 'O', '.- - .': 'P', '- - .-': 'Q',
             '.- .': 'R', '..-': 'U', '...-': 'V', '.- -': 'W', '- ..-': 'X', '- .- -': 'Y', '- - ..': 'Z', '.- .- .-': '.', '- - ..- -': ',',
             '- .- .- .': ';', '..- - ..': '?', '- .- .- -': '!', '- .- - .': '(', '- .- - .-': ')', '...- ..-': '$', '....': '&',
             '.- - .- .': '@'}

def encryption(plaintext):
    ciphertext = []
    for i in plaintext:
        ciphertext.append(mos_dict[i])
    # ciphertext = ''.join(ciphertext)
    # 获得的是一个列表
    print(f'密文为{ciphertext}')

def decryption(ciphertext):
    plaintext = []
    for i in ciphertext:
        plaintext.append(dmos_dict[i])
    print(f'明文为{plaintext}')

if __name__ == '__main__':
    enter = 1
    #加密
    if enter == 0:
        plaintext = input('请输入明文: ').upper()
        # plaintext = 'qingyu'.upper()   #测试代码
        encryption(plaintext)
    # 解密
    if enter == 1:
        # ciphertext = ['- - .-', '..', '- .', '- - .', '- .- -', '..-']
        ciphertext = input('请输入密文: ') #要求输入列表
        decryption(ciphertext)

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

摩尔斯电码(Morse Code)是一种用于传输电报的编码方式,它是由美国画家塞缪尔·F·B·摩尔斯于1835年发明的。摩尔斯电码的特点是简单易学,适用于不同语言,因此在无线电通讯和求救信号等方面得到了广泛的应用。 下面是一个简单的 Python 实现,可以用来加密和解密摩尔斯电码。 加密摩尔斯电码: ``` 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 encrypt_message(message): cipher = '' for letter in message: if letter != ' ': cipher += MORSE_CODE_DICT[letter] + ' ' else: cipher += ' ' return cipher message = input("请输入要加密的信息:") result = encrypt_message(message.upper()) print("加密后的结果为:", result) ``` 解密摩尔斯电码: ``` 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 decrypt_message(message): message += ' ' decipher = '' citext = '' for letter in message: if (letter != '-' and letter != '.' and letter !=' '): return "无效的输入" if letter == ' ': decipher += MORSE_CODE_DICT[citext] citext = '' else: citext += letter return decipher message = input("请输入要解密的信息:") result = decrypt_message(message) print("解密后的结果为:", result) ``` 希望能对你有所帮助!
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值