变异凯撒密码学,用C语言和Python解决【网络攻防CTF】(保姆级图文)
目录
-
- 题目
- 思路分析
-
- flag{Caesar_variation}
- Python代码
- C语言代码
- 总结
欢迎关注 『网络攻防CTF』 系列,持续更新中
欢迎关注 『网络攻防CTF』 系列,持续更新中
题目
-
afZ_r9VYfScOeO_UL^RWUc
-
答案格式:flag{ }
思路分析
- 通常我们会尝试能否与ctf 或者flag 有关系,写出下面的ASCII码对应
- afZ_r9VYfScOeO_UL^RWUc
- flag{xxxxxxxxxxxxxxxxxxxx}(和上面的长度相同)
a:97 | f:102 | Z:106 | _:95 |
---|---|---|---|
c:99 | t:116 | f:102 | {:123 |
f:102 | l:108 | a:97 | g:103 |
- 发现和
flag
有这样的关系
a→f: 移动了5 f→l:移动了6, Z→a: 移动了7 _→g:移动了8
- 找到了规律,依次移动位数递增。
flag{Caesar_variation}
答案
Python代码
##Python解决方案# 输入被解密的字符串string 和 初始相差位数begin_numdef KaiSa(string, begin_num): string_list = list(string)#把字符串转化为char数组 result = "" #存放 for char in string_list: num = ord(char)#转化为ASCII格式 num += begin_num#增加相差位数值 begin_num += 1#相差位数值逐渐递增 char = chr(num)#转化为字符 result += char#拼接结果字符到结果中 return resultprint(KaiSa("afZ_r9VYfScOeO_UL^RWUc", 5))
C语言代码
include<iostream>include<string>using namespace std;int main(){string a="afZ_r9VYfScOeO_UL^RWUc";string b="flag";int n=a.size();char c;//int j='f'-'a';//cout<<j<<endl;for(int i=0;i<4;i++)cout<<b[i]-a[i];}
总结
大家喜欢的话,给个👍,点个关注!继续跟大家分享敲代码过程中遇到的问题!
版权声明:
发现你走远了@mzh原创作品,转载必须标注原文链接
Copyright 2022 mzh
Crated:2022-3-6
欢迎关注 『网络攻防CTF』 系列,持续更新中
欢迎关注 『网络攻防CTF』 系列,持续更新中
【网络攻防CTF】草稿(保姆级图文)
【更多内容敬请期待】