ROT13加密,一种简单加密方式,详见百度百科,这里用python shell直接解密
1 'grfg110, jung vf Frgrp Nfgebabzl'.decode('rot13')
可得答案:'test110, what is Setec Astronomy'
base64 加密,详情百度,同上直接python shell解密
'VG9vIG1hbnkgc2VjcmV0cyB0ZXN0MTEw'.decode('base64')
可得答案:'Too many secrets test110'
这题是将明文转化为对应2进制编码,将所给2进制码逆转为ascii码即可,这里采用tools88.com的编码转换工具
得到答案:Binary makes a l33t sig for 70051 users on this site, test110
LM Hash 详情见百度,Hash算法没辙,网上查表吧,这里提供两个查询链接供参考:
http://www.objectif-securite.ch/en/ophcrack.php
http://rainbowtables.it64.com/
依旧Hash算法,网上查询,这里提供两个个人认为比较好的查询网站:
cmd5:http://cmd5.com/
somd5:http://aiisoo.com/
PS:这题貌似有点坑,出的大部分密文都只能cmd5付费查询才有,当然,有条件的可以自己跑
还是Hash ,网上查,这里提供一个网站:
http://cn.freemd5.com/
自定义加密,题目提供加密测试,可输入自己的字符串得到相应加密结果,经几次测试可知:
加密方式为奇数序号字符ascii码-5,偶数序号字符ascii码+5(首字符算序号1)。
解密只需将密文奇数序号字符ascii码+5,偶数序号字符ascii码-5,这里用python小程序解决:
1 #! usr/bin/env/python
2 a='3ff0sk\\' #此处为密文 '3ff0sk' ,'\'字符为转义字符,因此需多一个转义字符转义'\'
3 l=[] #存放结果
4 for i in xrange(len(a)): 5 if i%2:#偶数序号(python以序号0开始计数)
6 l.append(chr(ord(a[i])-5)) 7 else:#奇数序号
8 l.append(chr(ord(a[i])+5)) 9 print ''.join(l)
异或加密后再base64加密,异或运算特点:a^b=c 则 b=c^a
根据两种加密的特点及密文长度可推出明文长度为8
输入12345678进行加密测试,得到密文:XVtUXEFUQlQ=
显然为先异或加密再base64加密。用所得密文base64解密后得到异或后的密文
根据上文提到异或特点可求得异或时的密钥,
最后再用密钥与题目所给密文base64解密后字符串异或可得答案
参考代码(python):
1 #! usr/bin/env/python 2 a='XVtUXEFUQlQ=' #明文'12345678'对应密文 3 a=a.decode('base64') 4 b='12345678' #测试字符串 5 key=[] #存放密钥 6 for i in xrange(len(a)): 7 key.append(chr(ord(a[i])^ord(b[i]))) 8 9 #print ''.join(key) 10 11 c='XQUQA0M9H1g=' #题目待解密文 12 c=c.decode('base64') 13 answer=[]#存放答案 14 for i in xrange(len(key)): 15 answer.append(chr(ord(key[i])^ord(c[i]))) 16 print ''.join(answer) 17
高级自定义加密,观察密文可发现:128重复出现多次,结合题目给出的加密测试可知:
128为明文加密后对每个字符加密结果的一个间断(break)。同Level7奇数序号加密方式相同,偶数序号加密方式也相同。
此处给出部分字符加密后对应密文(忽略间隔128),左排为奇数序号,右排为偶数序号位,
观察可发现偶数位后一个字符减前一个字符所得数值为一个递增数列,左边博主表示看不出规律
因此,本题亦暂无正规解题思路,奇数位仅能手动试出结果,无法计算得出。
-----------------------------------Mr.Rice--------------------------------------------
以上为网站securityoverride.org Decryption部分个人解题思路,仅供参考,欢迎交流探讨更多解题思路。