打开网页有如下代码:
<?php
$miwen="a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws";function encode($str){$_o=strrev($str);// echo $_o;for($_0=0;$_0<strlen($_o);$_0++){$_c=substr($_o,$_0,1);$__=ord($_c)+1;$_c=chr($__);$_=$_.$_c; } return str_rot13(strrev(base64_encode($_)));
}highlight_file(__FILE__);
/*逆向加密算法,解密$miwen就是flag
*/
?>
思路:
根据题意:
加密过程没有调用minwen?,那是不是直接把值代入minwen?,那是不是直接把值代入minwen?,那是不是直接把值代入str进行加密?
编写代码使得
字符串经过for循环
加密: return str_rot13(strrev(base64_encode($_)));
结果再进行Base64,反转,Rot13:
??flag还不正确?????????????
正确解法:
不对不对,根据提示应该是逆向这个加密算法,把结果往回逆推
逻辑是:先rot13,反转,base64加密,for循环
<?php
$a="a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws";
$a=str_rot13($a);
$a=strrev($a);
$a=base64_decode($a);
function decode($str){$b="";for($test=0;$test<strlen($str);$test++){$b=$b.(chr(ord($str[$test])-1));}return $b;
}
echo strrev(decode($a));?>