NSCTF crypto50:

http://www.shiyanbar.com/ctf/1758
NSCTF crypto50:
神秘的字符串:U2FsdGVkX1+qtU8KEGmMJwGgKcPUK3XBTdM+KhNRLHSCQL2nS
XaW8++yBUkSylRp




解:一般有好多加号首要考虑AES加解密,http://tool.oschina.net/encrypt
在线解得flag{DISJV_Hej_UdShofjyed}

里面感觉不对劲哈,用通常的凯撒解密,注意对应大小写就ok了。]


第1种可能:   disjvhejudshofjyed
第2种可能:   ejtkwifkvetipgkzfe
第3种可能:   fkulxjglwfujqhlagf
第4种可能:   glvmykhmxgvkrimbhg
第5种可能:   hmwnzlinyhwlsjncih
第6种可能:   inxoamjozixmtkodji
第7种可能:   joypbnkpajynulpekj
第8种可能:   kpzqcolqbkzovmqflk
第9种可能:   lqardpmrclapwnrgml
第10种可能:   mrbseqnsdmbqxoshnm
第11种可能:   nsctfrotencryption
第12种可能:   otdugspufodszqujpo
第13种可能:   puevhtqvgpetarvkqp
第14种可能:   qvfwiurwhqfubswlrq
第15种可能:   rwgxjvsxirgvctxmsr
第16种可能:   sxhykwtyjshwduynts
第17种可能:   tyizlxuzktixevzout
第18种可能:   uzjamyvalujyfwapvu
第19种可能:   vakbnzwbmvkzgxbqwv
第20种可能:   wblcoaxcnwlahycrxw
第21种可能:   xcmdpbydoxmbizdsyx
第22种可能:   ydneqczepyncjaetzy
第23种可能:   zeofrdafqzodkbfuaz
第24种可能:   afpgsebgrapelcgvba
第25种可能:   bgqhtfchsbqfmdhwcb
第26种可能:   chriugditcrgneixdc


结合题目哈哈:

DISJV=>NSCTF
Hej=>Rot
UdShofjyed=>EnCryption


flag:flag{NSCTF_Rot_EnCryption}

#实现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()  
  
      
      


你可能感兴趣的:(NSCTF crypto50:)