> 文档中心 > 变异凯撒密码学,用C语言和Python解决【网络攻防CTF】(保姆级图文)

变异凯撒密码学,用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语言和Python解决【网络攻防CTF】(保姆级图文)


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】草稿(保姆级图文)
【更多内容敬请期待】