python-破译密码
破译密码(10分)
题目内容:
A国情报局抓获敌国间谍一名,从间谍身上搜出了若干密电,在严刑逼供之下,间谍说出了密电加密方法:将明文电报(仅由大写字母构成)中的所有字母均替换为字母表中向后看的第n个字母,如果超过Z,则从A继续数,这样就得到了密文,比如ATTACK,向后看第2个字母,就加密为CVVCFM。
可还没等到间谍说出加密用的密钥(数字n),就被卧底开枪打死,间谍临死前在地板上画了BYE三个字母。
情报局长看着一条条密电发了愁,但机智的你已经发现,原来间谍在告诉我们,所有密电的明文都以BYE结尾!
请编写程序破译这些密电吧!
输入格式:
共一行字符串,全部由大写字母构成的密文。
输出格式:
共一行字符串,破译后的明文。
输入样例1:
JNTQZCZF
输出样例1:
IMSPYBYE
时间限制:500ms内存限制:32000kb
程序1:
s=input()
a='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
for n in range(26): #穷举密钥nsecret=a[n:]+a[:n] #密钥n对应的密码表if a[secret.index(s[-1])]=='E':for t in s: #破解得到明文print(a[secret.index(t)],end='')print()break
程序2:
s=input()
a='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
#直接求出密钥n
n = a.index(s[-1])-a.index('E')
#解密计算明文
for t in s:print(a[(a.index(t)-n) % 26],end='')
程序3:
m = input()
for i in range(1,26):s = []for j in m:s.append(chr((ord(j)-65+i)%26+65))newstr = ''.join(s)if 'BYE' in newstr:print(newstr)
python-破译密码相关推荐
- 趣味课堂之使用Python破译密码
python破解WiFi密码 刚下课,就有一群学生跑来问我.老师,我们刚刚学习了加密与解密.你能破译WiFi密码吗?面对突如其来的问题,我没有回答,而是默默坐到了机房的最角落里,打开了python开发 ...
- 技术流 | 手把手教你用Python设计一个命令行界面
作者 | Yannick Wolff 译者 | 刘旭坤 整理 | Jane 出品 | Python大本营 对 Python 程序来说,完备的命令行界面可以提升团队的工作效率,减少调用时可能碰到的困扰. ...
- python界面设计-手把手教你用Python设计一个简单的命令行界面
原标题:手把手教你用Python设计一个简单的命令行界面 对 Python 程序来说,完备的命令行界面可以提升团队的工作效率,减少调用时可能碰到的困扰.今天,我们就来教大家如何设计功能完整的 Pyth ...
- python机器语言直接用二进制代码表达指令_尔雅慕课搜题app,超星尔雅考试搜题,超星慕课查题app,学堂云搜题...
尔雅慕课搜题app,超星尔雅考试搜题,超星慕课查题app,学堂云搜题 更多相关问题 [判断题]网络促销的作用主要是促进销售. (5.0分) [填空题]企业在进行网络营销时必不可少的促销方式和手段是( ...
- Python密码库Cryptography探究学习
一.简介 Cryptography的目标是建立一个标准Python加密库,支持 Python 2.6-2.7, Python 3.3+, and PyPy 2.6+.如果对密码学领域感兴趣的话,可以学 ...
- Python每日一学 03——计算半径为r的圆的面积
Python每日一学 03--计算半径为r的圆的面积 文章目录 Python每日一学 03--计算半径为r的圆的面积 一.计算半径为r的圆的面积 二.按IPO模式解决 三. 输入转数值 四.精度问题 ...
- AES加密解密的基本原理与Python爬取AES加密接口
大家好,我是小小明,今天我要带大家学习AES加密的基本原理,并爬取一个经过AES加密的接口.一起来学习吧! AES编码解码基础 AES简介 AES(Advanced Encryption Standa ...
- Github配置(git+vscode+python+jupyter)
①下载git 打开 git bash 工具的用户名和密码存储 $ git config --global user.name "Your Name" $ git config -- ...
- 【实验楼】python简明教程
①终端输入python进入 欣赏完自己的杰作后,按 Ctrl + D 输入一个 EOF 字符来退出解释器,你也可以键入 exit() 来退出解释器. ②vim键盘快捷功能分布 ③这里需要注意如果程序中 ...
- 【Kaggle Learn】Python 5-8
五. Booleans and Conditionals Using booleans for branching logic x = True print(x) print(type(x))''' ...
最新文章
- AI换脸技术再创新高度,DeepMind发布的VQ-VAE二代算法有多厉害?
- pandas.Series.values 将Series内的数值以ndarray或ndarray-like的形式返回,取决于原Seires的数据类型
- Java多线程之Synchronized和Lock的区别
- linux查找并删除进程,linux中查找并kill一个名为server的进程
- strcpy,memcpy,memset函数实现
- python中类里self_Python类中的self到底是干啥的
- C#数据库事务机制及实践(下)
- 麒麟信安:“一云多芯”信创云桌面解决方案引领者
- 抢饭碗?这位 05 后开发三款小程序!
- C++ string类不能像C字符串能靠在i位赋值为‘\0’来截断
- ubuntu 设置静态路由_Linux route 配置静态路由(转载)
- 问卷及量表统计与SPSS实战
- adb 连接某个wifi_Android中如何使用WIFI来连接ADB
- SQL1005N 数据库别名 ECM 已存在于本地数据库目录或系统数据库目录中。
- SuSe Linux防火墙配置指定IP或IP段可访问
- 【Prism】MEF版Commanding
- Qt5编译使用QFtp
- 电 脑 小 知 识 荟萃
- UML建模、数据库设计和UI设计工具
- 妮娜·杜波夫Nina Dobrev