python实现解密培根脚本,解密程序好多都是在线的,今天想把解密程序用python写一个离线的,就当学习练习,以下文章供大家参考、学习,如有错误,多多指出,谢谢大家!
["aaaaa","aaaab","aaaba","aaabb","aabaa","aabab","aabba","aabbb","abaaa","abaab","ababa","ababb","abbaa","abbab","abbba","abbbb","baaaa","baaab","baaba","baabb","babaa","babab","babba","babbb","bbaaa","bbaab"]
BAABAABBAAAAAAAABABBABABBBAABABAABBABBBAABBABAABAA
#!/usr/bin/python3
txt = input().lower() #.lower()方法把输入数据转换为小写
#a定义为键
a = ["aaaaa","aaaab","aaaba","aaabb","aabaa","aabab","aabba","aabbb","abaaa","abaab","ababa","ababb","abbaa","abbab","abbba","abbbb","baaaa","baaab","baaba","baabb","babaa","babab","babba","babbb","bbaaa","bbaab"]
#b定义为值,并利用列表推导式列出a~z
b = [chr(i) for i in range(ord('a'),ord('z')+1)]
['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']
key = dict(zip(a,b)) #key定义为字典,使用zip()函数将a,b组合为字典
for i in range(0,len(txt),5): #0~50,共计50字符,步长为5
print(key.get(txt[i:i+5]),end='') #输出字典对应的值,不换行
["aaaaa","aaaab","aaaba","aaabb","aabaa","aabab","aabba","aabbb","abaaa","abaab","ababa","ababb","abbaa","abbab","abbba","abbbb","baaaa","baaab","baaba","baabb","babaa","babab","babba","babbb"]
24个密文,对应的明文:
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', '(ij)', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', '(uv)', 'w', 'x', 'y', 'z’]
要求编写一个解密脚本,并用这个脚本来解密下面的密文:
AAAABAAAAAAAABAABBABABBAAABAAABAAABABBAAABBABBAABAAABABABBABABBABAAABB
#!/usr/bin/python3
#用replace()方法和lower()方法处理输入数据,去除两侧空格并把字符转换成小写
txt = input().replace(' ','').lower()
a = ["aaaaa","aaaab","aaaba","aaabb","aabaa","aabab","aabba","aabbb","abaaa","abaab","ababa","ababb","abbaa","abbab","abbba","abbbb","baaaa","baaab","baaba","baabb","babaa","babab","babba","babbb"]
b = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', '(ij)', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', '(uv)', 'w', 'x', 'y', 'z']
#使用字典推导式将a与b组成对应的字典
key = {i:j for i,j in zip(a,b)}
#循环变量i步长为5进行取值
for i in range(0,len(txt),5):
print(key.get(txt[i:i+5]),end='')
密文:hellOeveryone,AreYOU huNGrY?woUldyou li To eAtBAcon?
>>> a = 'hellOeveryone,AreYOU huNGrY?woUldyou li To eAtBAcon?'
>>> flag = ''
>>> for i in a:
... if i.islower(): #如果i小写,则flag变量追加a
... flag = flag + 'a'
... elif i.isupper(): #如果i是小写,则flag变量追加b
... flag = flag + 'b'
...
>>> flag #拿最后的值去进行解密
'aaaabaaaaaaaabaabbbaabbabaabaaaaaaabaababbaaa'
若两次解密都错误,或许是 a b 的值对应错了。 可以使用
table = ' '.maketrans('ab','ba')
flag.translate(table)
则可以进行a与b的互换
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有