CTF-变异凯撒
题目:
这道题的密码表是ASCII表,通过观察前五个字符的规律可以得到加密后的密文是f-5=a,l-f=6。。。这样的规律,每两个对应字符之间的ASCII差值逐渐增大,增量为1
用php解题代码如下:
<?php
function decode($str)
{
$finish='';
for($_O=5;$_O<strlen($str)+5;$_O++){
$_c=substr($str,$_O-5,1);
$__=ord($_c)+$_O;
$_c=chr($__);
$finish=$finish.$_c; }
return $finish;
}
$p=decode("afZ_r9VYfScOeO_UL^RWUc");
print $p;
?>
/*****************************************************************
******************************************************************
php学习笔记一:
1.基本格式
<?php
/**/
?>
2.注释格式 // # /**/
3.所有用户定义的函数、类和关键词(例如 if、else、echo 等等)都对大小写不敏感,所有变量对大小写敏感,函数名对大小写不敏感
4.变量定义
以 $ 符号开头,其后是变量的名称
- 变量名称必须以字母或下划线开头
- 变量名称不能以数字开头
- 变量名称只能包含字母数字字符和下划线(A-z、0-9 以及 _)
- 变量名称对大小写敏感($y 与 $Y 是两个不同的变量)
5.PHP 有三种不同的变量作用域:
- local(局部)
- global(全局)
- static(静态)
*******************************************************
*******************************************************/
CTF解题思路:
变异凯撒,解题方式肯定关于凯撒密码,但是形式应该是凯撒密码的变形,可能性在于距离的变化。
题目中给的除了字母还有特殊符号可以想到ascii码表,移位归到字母上,并且结合flag{}形式,可以判断出移位的数字是渐变的,最后就是将原来给的字符串变成明文即可。