實驗吧——NSCTF web200


題目地址: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),解密再減回來就好啦,還是很簡單的


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM