南京邮电大学CTF-密码学-骚年来一发吗
看到了很多关于这道题目求解的博客,都是用PHP求解的,而我想用Python来求解
题目如下:
加密过程:
翻转字符串-字符对应的ASCII码加1-base64加密-翻转-字符向前移13位加密
解密过程:
字符向后移13位-翻转-base64解码-ASCII码减1-翻转
Python解密代码:
#%密码学#%题目:骚年来一发,(PHP加密代码)#%python解密import base64def rot13(string): #**字母向后移动13位new_s = ''for s in string:#s = s.lower() #**转换成小写num = ord(s)if num>=97 and num <=122:num = 97 + ((num-97)+13)%26 #**小写字母向后移动13位s = chr(num)elif num>=65 and num<=90:num = 65 + ((num-65)+13)%26 #**大写字母向后移动13位s = chr(num)print chr(num)new_s = new_s +sprint new_sreverse(new_s)def reverse(string):s = string[::-1] #**字母翻转print sjiemi(s)def jiemi(string):string_new = ''string = base64.b64decode(string) #%base64解密print stringfor s in string:# s = s.lower()num = ord(s)num = num - 1code = chr(num)print codestring_new = string_new + codeprint string_newflag = string_new[::-1] #**字母翻转print flagdef main():#string = raw_input('请输入密文:')string = 'iEJqak3pjIaZ0NzLiITLwWTqzqGAtW2oyOTq1A3pzqas'rot13(string)if __name__ == '__main__':main()
flag:
OK,用Python完成题目