下载题目,然后修改后缀名为.zip打开:
题目.txt:
公元前一百年,在罗马出生了一位对世界影响巨大的人物,他生前是罗马三巨头之一。他率先使用了一种简单的加密函,因此这种加密方法以他的名字命名。
以下密文被解开后可以获得一个有意义的单词:FRPHEVGL
你可以用这个相同的加密向量加密附件中的密文,作为答案进行提交。
密文.txt:
ComeChina
凯撒密码核心就是移位,所以我们将题目中给的字符串FRPHEVGL
经行1-26的移位观察(总所周知,一个单词小写字母写认识,可能大写字母写就认不出来了,所以转化成小写字母)
str1 = 'FRPHEVGL'
str2 = str1.lower() #转换为小写方便识别
num = 1 #偏移量
for i in range(26):
print("{:<2d}".format(num),end = ' ')
for temp in str2:
if(ord(temp)+num > ord('z')): #如果超出'z',需要重新映射会a~z这26个字母上
print(chr(ord(temp)+num-26),end = '')
else:
print(chr(ord(temp)+num),end = '')
num += 1
print('')
可以看到偏移量是13的时候,好像是我们想要的东西,然后将密文里面的ComeChina
做偏移量为13的偏移:然后如果超出z
,减26使其回到A-z
范围内(别问我为什么,因为不减的结果P|zrPuv{n
经过我的验证是不对的),最终得到PbzrPuvan
,用花括号包起来就可以提交了flag{PbzrPuvan}
str = 'ComeChina'
for temp in str:
if(ord(temp)+13 > ord('z')):
print(chr(ord(temp)+13-26),end = '')
else:
print(chr(ord(temp)+13),end = '')
print('')