Strange King
题目描述如下:
某喜欢抽锐刻 5 的皇帝想每天进步一些,直到他娶了个模,回到原点,全部白给😅 这是他最后留下的讯息:
ksjr{EcxvpdErSvcDgdgEzxqjql}
,flag 包裹的是可读的明文
不难猜到是魔改的凯撒密码。题目描述中的数字 5 就是初始偏移量。「每天进步一些」代表偏移量在递增,对 26 取模后会到原点,偏移量每次增加是 26 的因子,此处是 2.
况且出题人连 {}
都没删掉,把 ksjr
和 flag
对照起来看也能看出来了吧!可以说是非常简单的古典密码了)
根据以上信息即可解出 flag
python
def caesar(c, shift):
result = ""
for i in c:
if i.isalpha():
start = ord('A') if i.isupper() else ord('a')
result += chr((ord(i) - start - shift) % 26 + start)
else:
result += i
shift += 2
return result
c = 'ksjr{EcxvpdErSvcDgdgEzxqjql}'
shift = 5
flag = caesar(c, shift)
print("flag:", flag)