php 代码加密(一)

php 代码加密(一)
渐渐遇 · 淡淡忘 2019-04-19 12:15:46 1925 收藏 2
分类专栏: 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');//要加密的文件
$vstr = file_get_contents('./application/config.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";
$c=$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('./application/test.php', 'w');
fwrite($fpp1, $s) or die('写文件错误');
?>
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值