这题略带脑洞,解压出的密文为 ilnllliiikkninlekile长度为20 并且发现提示 The length of this plaintext: 10密文长度是明文的2倍,然后密文只有5个字母出现,本能想到多表加密,但是不知道表的边缘的排序方式
例如: ilnkeiklne.....因为排序规则不同,就涉及对应的字母不同,所以这里我选择爆破一发 import itertoolskey = []cipher = "ilnllliiikkninlekile"for i in itertools.permutations('ilnke', 5): key.append(''.join(i))for now_key in key: solve_c = "" res = "" for now_c in cipher: solve_c += str(now_key.index(now_c)) for i in range(0,len(solve_c),2): now_ascii = int(solve_c)*5+int(solve_c[i+1])+97 if now_ascii>ord('i'): now_ascii+=1 res += chr(now_ascii) if "flag" in res: print now_key,res得到结果 linke flagisherelinek flagkxhdwd一看就是第一个,结果交了不对。。。
后来发现要交md5,得到flag flag{eedda7bea3964bfb288ca6004a973c2a}
|