当前位置:软件学习 > Flash >>

flashfxp解密

amxkus blog

amxku PS:一个是7j写的,一个是国外的,相比之下,国外的那个东,速度要快一些,7J可能该郁闷了。呵呵,学习学习。 function flashfxp($data)
     {
     $pass=substr($data, 2);


    $flashfxp_key = array(y,0,A,0,3,0,6,0,z,0,A,0,4,0,8,0,d,0,E,0,h,0,f,0,r,0,v,0,g,0,h,0,G,0,R,0,g,0,5,0,7,0,h,0,5,0,U,0,l,0,D,0,v,0,3);


     for ($i=0; $i < strlen($data) - 2; $i+=2)
             {
             $run = (Hexdec(substr($pass, $i, 2)) ^ Hexdec(DecHex(ord($flashfxp_key[$i])))) - Hexdec(substr($data, $i, 2));


             if ($run < 0)
                 $run=$run + 255;


             $Num.=chr($run);
             }


     return $Num;
     }
国外的一个 function decryptffxp($ciphertext)
     {
     $magic_buffer="yA36zA48dEhfrvghGRg57h5UlDv3";
     $count         =0;
     $length         =strlen($ciphertext);


     while ($count < $length)
             {
             $cts.=chr(hexdec($ciphertext[$count] . $ciphertext[$count + 1]));
             $count+=2;
             }


     $length =strlen($cts);
     $count     =0;
     $mbcount=0;


     while ($count + 1 < $length)
             {
             $foo = ord($cts[$count + 1]) ^ ord($magic_buffer[$mbcount]);


             if ($foo - ord($cts[$count]) < 0)
                 {
                 $plaintext.=chr($foo - ord($cts[$count]) + 255);
                 }
             else
                 {
                 $plaintext.=chr($foo - ord($cts[$count]));
                 }


             $count++;
             $mbcount++;


             if ($mbcount == 28)
                 {
                 $mbcount=0;
                 }
             }


     return $plaintext;
     }

补充:综合编程 , 安全编程 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,