MENU

保护PHP代码:一种简单的混淆加密

• October 29, 2017 • Read: 1907 • 瞎折腾,PHP

虽说分享是传统的美德,但我们有时候辛辛苦苦写一些程序只是为了卖点小钱,挣点辛苦费,也防止有些没有道德的人倒卖,所以我们不得不对我们的程序进行加密


代码:

<?php  
 
 function RandAbc($length = "") { // 返回随机字符串  
     $str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";  
     return str_shuffle($str);  
 }   
 
 $filename = 'index.php'; //要加密的文件  
 $T_k1 = RandAbc(); //随机密匙1  
 $T_k2 = RandAbc(); //随机密匙2  
 $vstr = file_get_contents($filename);  
 $v1 = base64_encode($vstr);  
 $c = strtr($v1, $T_k1, $T_k2); //根据密匙替换对应字符。  
 $c = $T_k1.$T_k2.$c;  
 $q1 = "O00O0O";  
 $q2 = "O0O000";  
 $q3 = "O0OO00";  
 $q4 = "OO0O00";  
 $q5 = "OO0000";  
 $q6 = "O00OO0";  
 $s = '$'.$q6.'=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");$'.$q1.'=$'.$q6.'{3}.$'.$q6.'{6}.$'.$q6.'{33}.$'.$q6.'{30};$'.$q3.'=$'.$q6.'{33}.$'.$q6.'{10}.$'.$q6.'{24}.$'.$q6.'{10}.$'.$q6.'{24};$'.$q4.'=$'.$q3.'{0}.$'.$q6.'{18}.$'.$q6.'{3}.$'.$q3.'{0}.$'.$q3.'{1}.$'.$q6.'{24};$'.$q5.'=$'.$q6.'{7}.$'.$q6.'{13};$'.$q1.'.=$'.$q6.'{22}.$'.$q6.'{36}.$'.$q6.'{29}.$'.$q6.'{26}.$'.$q6.'{30}.$'.$q6.'{32}.$'.$q6.'{35}.$'.$q6.'{26}.$'.$q6.'{30};eval($'.$q1.'("'.base64_encode('$'.$q2.'="'.$c.'";eval(\'?>\'.$'.$q1.'($'.$q3.'($'.$q4.'($'.$q2.',$'.$q5.'*2),$'.$q4.'($'.$q2.',$'.$q5.',$'.$q5.'),$'.$q4.'($'.$q2.',0,$'.$q5.'))));').'"));';  
 
 $s = '<?php '."\n".$s."\n".' ?>';  
 echo $s;  
 // 生成 加密后的PHP文件  
 $fpp1 = fopen('temp_'.$filename, 'w');  
 fwrite($fpp1, $s) or die('写文件错误');  
 ?>


加密后的效果:

<?php 
$O00OOO00O0O0O0O00O0O0O0O=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");$O00O0OOO00O0O00O0OO00O0O=$O00OOO00O0O0O0O00O0O0O0O{3}.$O00OOO00O0O0O0O00O0O0O0O{6}.$O00OOO00O0O0O0O00O0O0O0O{33}.$O00OOO00O0O0O0O00O0O0O0O{30};$O0OO00O00OOO00O0O00O0O0O=$O00OOO00O0O0O0O00O0O0O0O{33}.$O00OOO00O0O0O0O00O0O0O0O{10}.$O00OOO00O0O0O0O00O0O0O0O{24}.$O00OOO00O0O0O0O00O0O0O0O{10}.$O00OOO00O0O0O0O00O0O0O0O{24};$OO0O00OO0O00O0O0O0O00O0O=$O0OO00O00OOO00O0O00O0O0O{0}.$O00OOO00O0O0O0O00O0O0O0O{18}.$O00OOO00O0O0O0O00O0O0O0O{3}.$O0OO00O00OOO00O0O00O0O0O{0}.$O0OO00O00OOO00O0O00O0O0O{1}.$O00OOO00O0O0O0O00O0O0O0O{24};$OO0000OO00O0O0O00O0O0O0O=$O00OOO00O0O0O0O00O0O0O0O{7}.$O00OOO00O0O0O0O00O0O0O0O{13};$O00O0OOO00O0O00O0OO00O0O.=$O00OOO00O0O0O0O00O0O0O0O{22}.$O00OOO00O0O0O0O00O0O0O0O{36}.$O00OOO00O0O0O0O00O0O0O0O{29}.$O00OOO00O0O0O0O00O0O0O0O{26}.$O00OOO00O0O0O0O00O0O0O0O{30}.$O00OOO00O0O0O0O00O0O0O0O{32}.$O00OOO00O0O0O0O00O0O0O0O{35}.$O00OOO00O0O0O0O00O0O0O0O{26}.$O00OOO00O0O0O0O00O0O0O0O{30};eval($O00O0OOO00O0O00O0OO00O0O("JE8wTzAwME9PME8wME8wTzBPME8wME8wTz0iY1FmVG5pWXR5SUhqR3JEV3FtWk11VkNGT3psQlNnc0tSYVV3QWRKTFBib3BreFhFTnZoZU9YRXlZc0lLSHRyUUJlcFNrdm9BbGpaTkRnYWZXYkxobnF6d21kUkZWVUNQR2N4dU1USmlWcDl3cXJtTVp2bzFVdk0wcVM5bHRCZGFkTjlISVM1R1UyMWdkcnRDUkJjYVVZbkN0cDBiTXNHYml3MGh0Wm1idHJSYWRyakhVc2ZZb3huRU92TmxvQjlLaFpuTG9TNTBxWndiUmd1SEFnWDFNUU80RFNOc0kybmFvdmRDcVNQZVVCMWxPck5ITzNuMWRZZDRpeFBmWEdNdW56b3JXdWFoVzBjTXlhZm56YU16ampveFNOYXFSSEc3cFhQOXBYQ2JwWFB2ZFM1UWRCYVRVc2ZZb3huRU92TmxvQjlLaFpuTG9TNVlkQmJMdFpuUXFCTkhPSG05dFpPd0F5dGdNcHoyTWdiNVJIR2JpdzBodFptYnRabkNJeE1DdHAwYlJITzdwWENidFptYlJCMUppWm05dHJNME92Y2FVc2JHSTJKSk9ZQVB0WjBiQXlMTVpzbWJ0WmZ2VTN0Q1JCR2JWV213REhtR3FXbTh0Wm5Mb1M1WWRCYjd0Wm5QaEhMUHRyTE1ac21idFptYnRabWJSQkpKTzJiYkZRMGJSQk1DSXhSZ1MyMTB4M1JKVXZYQ0Fad2JSQjFKaVphZER3MGh0Wm1idHIwTVpzbWJ0WmZIb3huMU92NGJSQkpKTzJiN3BYUDlwWFBhSTJKVHRCZGFkTjlISVM1R1UyMWdkcnRDTXNHN3BYUGFJMkpUdEJkYWROOUhJUzVHVTIxZ2RydENNSEc3cFhDL1ZiPT0iO2V2YWwoJz8+Jy4kTzAwTzBPT08wME8wTzAwTzBPTzAwTzBPKCRPME9PMDBPMDBPT08wME8wTzAwTzBPME8oJE9PME8wME9PME8wME8wTzBPME8wME8wTygkTzBPMDAwT08wTzAwTzBPME8wTzAwTzBPLCRPTzAwMDBPTzAwTzBPME8wME8wTzBPME8qMiksJE9PME8wME9PME8wME8wTzBPME8wME8wTygkTzBPMDAwT08wTzAwTzBPME8wTzAwTzBPLCRPTzAwMDBPTzAwTzBPME8wME8wTzBPME8sJE9PMDAwME9PMDBPME8wTzAwTzBPME8wTyksJE9PME8wME9PME8wME8wTzBPME8wME8wTygkTzBPMDAwT08wTzAwTzBPME8wTzAwTzBPLDAsJE9PMDAwME9PMDBPME8wTzAwTzBPME8wTykpKSk7"));
Archives QR Code
QR Code for this page
Tipping QR Code
Leave a Comment

已有 20 条评论
  1. 可以了老铁

  2. 21行出错

    1. @尴尬好了,现在已经更新了代码 @(weiqu)

  3. 我搞好了加密文件和被加密文件,但是访问index.php,显示空白,文件也没有被加密

    1. @尴尬代码中,要加密的文件名改了没有? @(yiwen)

    2. @尴尬我用你的默认文件名,加密又显示28错误

    3. @尴尬这就尴尬了,我给出的代码一共就27行,没有28行啊 @(heixian)

  4. 谢谢哈

  5. 是把加密代码复制到index.php
    然后上传空间,被加密文件怎么办来着

    1. @墨墨把要加密的文件放在同一目录下,并且修改加密程序代码中的要加密的文件的文件名,然后访问加密程序,就会自动生成加密后的文件

  6. 北极熊 北极熊

    火钳刘明

    1. @北极熊感谢支持 @(huaji)

  7. tol tol

    这个怎么使用呢,给个教程 大佬

    1. @tol首先,新建一个index.php,然后把代码复制进去,修改代码中你要加密的文件名,并把要加密的文件放在同一目录下。接着,访问index.php,然后就会自动生成加密后的文件在index.php的同一目录下

    2. @tol运行index.php之后就会自动生成加密后的文件encode_xxxxx.php

    3. tol tol

      @admin运行的意思 是 直接 浏览器打开访问这个地址吗,
      比如 http://www.baidu.com/index.php

    4. @tol对的,传到你的服务器上,然后访问http://yourdomain.com/index.php

    5. tol tol

      @DistanceParse error: syntax error, unexpected '?>', expecting ',' or ')' in E:\wwwroot\16\index.php on line 38

      直接这样的提示呢,请教了

    6. @tol第38行代码出错了,不知道你怎么搞的,我这边测试没有问题

    7. @tol很抱歉,是我代码的问题,现在已经更新了 @(xiaoniao)