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{}形式,可以判断出移位的数字是渐变的,最后就是将原来给的字符串变成明文即可。

相关推荐