題目地址:http://ctf5.shiyanbar.com/web/web200.jpg
打開就是個自定義加密函數,只要寫出相應的解密算法就行
1 <?php 2 function encode($str){ 3 $_o=strrev($str); 4 for($_0=0;$_0<strlen($_o);$_0++){ 5 $_c=substr($_o,$_0,1); 6 $__=ord($_c)+1; 7 $_c=chr($__); 8 $_=$_.$_c; 9 } 10 return str_rot13(strrev(base64_encode($_))); 11 }
先看看其中幾個函數
strrev() 函數反轉字符串。
str_rot13() 編碼然后解碼字符串,編碼和解碼都是由相同的函數完成的。如果您把已編碼的字符串作為參數,那么將返回原始字符串。
ord() 字符轉ascii碼
chr() ascii碼轉字符
於是寫出解密算法:
1 function decode($str){ 2 $str=str_rot13($str); 3 $str=strrev($str); 4 $str=base64_decode($str); 5 6 $res=''; 7 for($i=0;$i<strlen($str);$i++){ 8 $c=chr(ord($str[$i])-1); 9 $res.=$c; 10 } 11 $res=strrev($res); 12 13 return $res; 14 }
其實加密的核心就是把每個字符向前移了一位(ascii碼加1),解密再減回來就好啦,還是很簡單的

