培根密码加解密(Python)

原理

加密时,明文中的每个字母会根据下面转换成5个字母;
解密时,密文中的每5个字母为一组转换成对应的1个字母;
在这里插入图片描述

Python代码如下:

CODE_TABLE = { #培根字典
    'aaaaa':'a','aaaab':'b','aaaba':'c','aaabb':'d','aabaa':'e','aabab':'f','aabba':'g',
    'aabbb':'h','abaaa':'i','abaab':'j','ababa':'k','ababb':'l','abbaa':'m','abbab':'n',
    'abbba':'o','abbbb':'p','baaaa':'q','baaab':'r','baaba':'s','baabb':'t','babaa':'u',
    'babab':'v','babba':'w','babbb':'x','bbaaa':'y','bbaab':'z'
}
choose = input('Input E(encode) or D(decode)\n\t') #输入ED,选择加密或解密
if choose == 'E':
    str = input('input your string:\n\t').lower()
    listStr = ''
    for i in str:
        if i in CODE_TABLE.values():
            # 将键、值各化为一个列表,取出i在value的位置后根据下标找到对应的键
            listStr += list(CODE_TABLE.keys())[list(CODE_TABLE.values()).index(i)]
    print(listStr)
    print(listStr.upper())#大写输出
if choose == 'D':
    bacon = input("input your bacon:\n\t").lower()
    listBacon = []
    for i in range(0,len(bacon),5):#5位为一组做一个列表
        listBacon.append(bacon[i:i+5])
    for i in range(len(listBacon)):#根据下标找值
        listBacon[i] = CODE_TABLE[listBacon[i]]
    print(''.join(listBacon))
    print(''.join(listBacon).upper())

例示:

在这里插入图片描述在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值