行百里者半九|

Guanz

园龄:2年11个月粉丝:7关注:12

2023-11-06 17:04阅读: 387评论: 0推荐: 0

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}

参考

凯撒密码
ASCII码对照表

本文作者:Guanz

本文链接:https://www.cnblogs.com/Guanz/p/17813176.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Guanz  阅读(387)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起