0x01
<?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
*/
?>
梳理一下:
- 反转字符串
- 遍历字符串:取第i个字符,使其ASCII码加一,追加到结果后面
- base64编码
- 反转
- rot13编码
0x02
把原来的顺序反过来就可以,写完代码如下:
<?php
$miwen="a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws";
$tmp = str_rot13($miwen);
$tmp = strrev($tmp);
$tmp = base64_decode($tmp);
$s = "";
for($i = 0; $i < strlen($tmp); $i++){
$_c=substr($tmp,$i,1);
$__=ord($_c)-1;
$_c=chr($__);
$s=$s.$_c;
}
$result = strrev($s);
echo $result;
?>