实验吧——NSCTF web200

时间:2023-03-09 13:36:05
实验吧——NSCTF web200

题目地址:http://ctf5.shiyanbar.com/web/web200.jpg

打开就是个自定义加密函数,只要写出相应的解密算法就行

 <?php
function encode($str){
$_o=strrev($str);
for($_0=0;$_0<strlen($_o);$_0++){
$_c=substr($_o,$_0,1);
$__=ord($_c)+1;
$_c=chr($__);
$_=$_.$_c;
}
return str_rot13(strrev(base64_encode($_)));
}

先看看其中几个函数

strrev() 函数反转字符串。

str_rot13() 编码然后解码字符串,编码和解码都是由相同的函数完成的。如果您把已编码的字符串作为参数,那么将返回原始字符串。

ord() 字符转ascii码

chr() ascii码转字符

于是写出解密算法:

 function decode($str){
$str=str_rot13($str);
$str=strrev($str);
$str=base64_decode($str); $res='';
for($i=0;$i<strlen($str);$i++){
$c=chr(ord($str[$i])-1);
$res.=$c;
}
$res=strrev($res); return $res;
}

其实加密的核心就是把每个字符向前移了一位(ascii码加1),解密再减回来就好啦,还是很简单的

实验吧——NSCTF web200