题目有两种文件
打开Cipher文件内容:
查看Encode文件
代码如下:
#include <bits/stdc++.h>
using namespace std;
int main()
{
freopen("Plain.txt","r",stdin);
freopen("Cipher.txt","w",stdout);
map<char, char> f;
int arr[26];
for(int i=0;i<26;++i){
arr[i]=i;
}
random_shuffle(arr,arr+26);
for(int i=0;i<26;++i){
f['a'+i]='a'+arr[i];
f['A'+i]='A'+arr[i];
}
char ch;
while((ch=getchar())!=EOF){
if(f.count(ch)){
putchar(f[ch]);
}else{
putchar(ch);
}
}
return 0;
}
分析代码,很明显这一串代码是一个加密的程序,而Cipher的文件内容就是通过加密程序的得到的密文,仔细观察,很明显示是一个无规律替换加密
于是使用词频分析(网站:http://quipqiup.com/)方法求解:
得到flag:afctf{Oh_U_found_it_nice_tRy}
标签:文件,AFCTF2018,ch,加密,int,arr,Single,Cipher From: https://www.cnblogs.com/Rebirth-Dream/p/16944705.html