php 代碼加密(一)

 

<?php
//加密解密原理
function RandAbc($length = "")
{//返回隨機字符串
    $str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
    return str_shuffle($str);
}

$T_k1 = RandAbc();//隨機密匙1    52位
$T_k2 = RandAbc();//隨機密匙2    52位

$vstr = file_get_contents('index.php');//要加密的文件
$v1 = base64_encode($vstr);

//準備混淆
$strtr_code = strtr($v1, $T_k1, $T_k2); //根據密匙替換對應字符
$encryption_code_str = $T_k1 . $T_k2 . $strtr_code; //祕鑰1(52位)+祕鑰2(52位) + 替換好的代碼


//定義了5個變量
//下面5個變量最好通過 一個base_decode選擇相應字符串拼接上去的,這樣代碼會亂一點
$base = "O0O000";
$strtr = "O0OO00";
$substr = "OO0O00";
$number_52 = "OO0000";
$base64_decode = "O00OO0";
$urldecode = 'O00OO000';
//$base = 'base';   //$k{0}.$k{1}.$k{2}.$k{3}這樣的形式拼接上來 下面的參數也是一樣的
//$strtr = 'strtr';
//$substr = 'substr';
//$number_52 = '52';  //這個就是隨機祕鑰字符的長度
//$base64_decode = 'base64_decode';
$var_str = <<<'str'
$urldecode_bak = urldecode("%6E1%7A%62%2F%6D%615%5C%76%740%6928%2D%70%78%75%71%79%2A6%6C%72%6B%64%679%5F%65%68%63%73%77%6F4%2B%6637%6A");
$base_bak = $urldecode_bak{3} . $urldecode_bak{6} . $urldecode_bak{33} . $urldecode_bak{30};
$strtr_bak = $urldecode_bak{33} . $urldecode_bak{10} . $urldecode_bak{24} . $urldecode_bak{10} . $urldecode_bak{24};
$substr_bak = $strtr_bak{0} . $urldecode_bak{18} . $urldecode_bak{3} . $strtr_bak{0} . $strtr_bak{1} . $urldecode_bak{24};
$number_52_bak = $urldecode_bak{7} . $urldecode_bak{13}; 
$base64_decode_bak = $base_bak . $urldecode_bak{22} . $urldecode_bak{36} . $urldecode_bak{29} . $urldecode_bak{26} . $urldecode_bak{30} . $urldecode_bak{32} . $urldecode_bak{35} . $urldecode_bak{26} . $urldecode_bak{30};

str;

$var_str = str_replace('$urldecode_bak', '$' . $urldecode, $var_str);
$var_str = str_replace('$base_bak', '$' . $base, $var_str);
$var_str = str_replace('$strtr_bak', '$' . $strtr , $var_str);
$var_str = str_replace('$substr_bak', '$' . $substr, $var_str);
$var_str = str_replace('$number_52_bak', '$' . $number_52, $var_str);
$var_str = str_replace('$base64_decode_bak', '$' . $base64_decode, $var_str);


$s = $var_str .
    'eval(
        $' . $base64_decode . '("'
    . base64_encode(
        '$' . $c . '="' . $encryption_code_str . '";
                eval(\'?>\'.$' .
        $base64_decode . '(
                        $' . $strtr . '(
                            $' . $substr . '($' . $c . ',$' . $number_52 . '*2),
                            $' . $substr . '($' . $c . ',$' . $number_52 . ',$' . $number_52 . '),
                            $' . $substr . '($' . $c . ',0,$' . $number_52 . ')
                    )
                )
            );') .
    '")
);';

$s = '<?php
' . $s .
    '
?>';

echo "OK,加密完成!";
//生成 加密後的PHP文件
$fpp1 = fopen('test.php', 'w');
fwrite($fpp1, $s) or die('寫文件錯誤');
?>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章