凯撒是罗马共和国杰出的军事统帅

http://www.shiyanbar.com/ctf/40


凯撒是罗马共和国杰出的军事统帅:
MGAKUZKRWZWGAWCP


解:直接用我里面的凯撒解密代码解得:
第1种可能:   mgakuzkrwzwgawcp
第2种可能:   nhblvalsxaxhbxdq
第3种可能:   oicmwbmtybyicyer
第4种可能:   pjdnxcnuzczjdzfs
第5种可能:   qkeoydovadakeagt
第6种可能:   rlfpzepwbeblfbhu
第7种可能:   smgqafqxcfcmgciv
第8种可能:   tnhrbgrydgdnhdjw
第9种可能:   uoischszeheoiekx
第10种可能:   vpjtditafifpjfly
第11种可能:   wqkuejubgjgqkgmz
第12种可能:   xrlvfkvchkhrlhna
第13种可能:   ysmwglwdilismiob
第14种可能:   ztnxhmxejmjtnjpc
第15种可能:   auoyinyfknkuokqd
第16种可能:   bvpzjozglolvplre
第17种可能:   cwqakpahmpmwqmsf
第18种可能:   dxrblqbinqnxrntg
第19种可能:   eyscmrcjoroysouh
第20种可能:   fztdnsdkpspztpvi
第21种可能:   gaueotelqtqauqwj
第22种可能:   hbvfpufmrurbvrxk
第23种可能:   icwgqvgnsvscwsyl
第24种可能:   jdxhrwhotwtdxtzm
第25种可能:   keyisxipuxueyuan
第26种可能:   lfzjtyjqvyvfzvbo
结果一眼就看到keyisxipuxueyuan转化一下
KEYISXIPUXUEYUAN试试不对,习惯实验吧的套路就好

flag:XIPUXUEYUAN


#实现97-122小写ASCII字母(默认)
def change(c,i):
	c=c.lower()
	num=ord(c)
	if(num>=97 and num<=122):  
		num=97+(num+i-97)%(26)  
	return chr(num)  

      
def kaisa_jiAmi(string,i):  
	string_new=''  
	for s in string:  
		string_new+=change(s,i)  
	print(string_new)  
	return string_new  
  
#本题有种暴力解密感觉  
def kaisa_jiEmi(string):  
	for i in range(0,26):  
		print('第'+str(i+1)+'种可能:',end='   ')  
		#区别在于 string 是该对象原本就是字符串类型, 而 str()则是将该对象转换成字符串类型。  
		kaisa_jiAmi(string,i)  
          
#你要知道input输入的数据类型都是string     
def main():  
	print('请输入操作,注意默认小写,大写同理:')  
	choice=input('1:恺撒加密,2:凯撒穷举解密.请输入1或2:')  
	if choice=='1':  
		string=input('请输入需要加密字符串: ')  
		num=int(input('请输入需要加密的KEY: '))  
		kaisa_jiAmi(string,num)  
	elif choice=='2':  
		string=input('请输入需要解密字符串: ')  
		kaisa_jiEmi(string)  
	else:  
		print('输入错误,请重试')  
		main()  
          
if __name__=='__main__':  
	main()  
  
      
      


你可能感兴趣的:(凯撒是罗马共和国杰出的军事统帅)