Crypto_BUUCTF_WriteUp | 变异凯撒
题目
加密密文:afZ_r9VYfScOeO_UL^RWUc
格式:flag{ }
分析
先复习一下凯撒密码。
它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是 3 的时候,所有的字母 A 将被替换成 D,B 变成 E,以此类推。
凯撒密码是单表代换密码,我们假设密文的前 4 个字符“afZ_”对应的明文是“flag”,尝试找出密钥 k。
通过对照 ASCII 码表,我们发现“flag”分别由“afZ_”前移 5/6/7/8 位得到。所以标题中的“变异”指的大抵就是这种在单表代换的基础上依次 +1 的密钥。
有道理,代码实现一下试试看:
char s[] = "afZ_r9VYfScOeO_UL^RWUc"; int add = 5; for (int i = 0; i < strlen(s); ++i) { s[i] += add++; } printf("%s", s);
得到 flag。
Flag
flag{Caesar_variation}
参考
本文作者:Guanz
本文链接:https://www.cnblogs.com/Guanz/p/17813176.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
分类:
标签:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步