[BUUCTF]变异凯撒

题目:

1
2
加密密文:afZ_r9VYfScOeO_UL^RWUc
猜测明文:flag{...}

看标题, 变异凯撒, 想必这题就是基于凯撒密码延伸出来的, 有了上次的经验, 我们再把这个字符的ASCII码拿来对比一下, 密文不外乎又是一些移位变换出来的

1
2
3
4
5
6
7
8
9
10
11
def show_ascii(*args):
for e in args:
ascii_list = []
for i in e:
ascii_list.append(ord(i))
print(ascii_list)

show_ascii("afZ_r9VYfScOeO_UL^RWUc", "flag")

#[97, 102, 90, 95, 114, 57, 86, 89, 102, 83, 99, 79...]
#[102, 108, 97, 103]

可以看到, 密文的前4位的ASCII码比 "flag" 这4个字符从第1位起依次大了5, 6, 7, 8, 后面的以此类推. 写出解密脚本即可拿到flag.

1
2
3
4
5
6
7
ciphertext = "afZ_r9VYfScOeO_UL^RWUc"
res = ''
for i in range(0,len(ciphertext)):
res += chr(ord(ciphertext[i])+(5+i))
print(res)

#flag{Caesar_variation}