题目:公元前一百年,在罗马出生了一位对世界影响巨大的人物,他生前是罗马三巨头之一。他率先使用了一种简单的加密函,因此这种加密方法以他的名字命名。
以下密文被解开后可以获得一个有意义的单词:FRPHEVGL
你可以用这个相同的加密向量加密附件中的密文,作为答案进行提交。
密文:ComeChina
当我们下载文件后,将文件改为.zip
首先,我们审计题目,罗马,大帝等词,所以我们不难猜出此题为凯撒密码,由凯撒密码的性质,写出代码对FRPHEVGL进行26次位移(由于python不熟,使用c++写码):
#include<bits/stdc++.h>
using namespace std;
main(){
char a[]="frphevgl",b[]="frphevgl";
int n;
for(int i=1;i<=26;i++){
for(int j=0;j<8;j++){
n=a[j];
if(n+i<=122){
a[j]=n+i;
}
else{
a[j]=n+i-26;
}
}
cout<<i<<" ";
for(int j=0;j<8;j++){
cout<<a[j];
}
cout<<endl;
for(int j=0;j<8;j++)
a[j]=b[j];
}
char c[]="ComeChina";
for(int i=0;i<=8;i++){
n=c[i];
if(n+13<=122){
a[i]=n+13;
cout<<a[i];
}
else{
a[i]=n-13;
cout<<a[i];
}
}
return 0;
}
由此我们可得出运行结果 :
我们不难发现其中13行为一有意义单词——security,所以此凯撒密码的key为13
最终执行,得出最终题解为flag{PbzrPuvan}