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)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值