zl程序教程

您现在的位置是:首页 >  后端

当前栏目

解析如何用phpscrew加密php源代码

PHP加密 如何 解析 源代码
2023-06-13 09:15:02 时间
在使用PHP过程中发现,自己编写的php代码因为都是源代码方式放在服务器上的所以很容易就被别人拿走随便修改(变成自己开发的)使用了。
为了保住自己的劳动成果,我一直寻找一种可以加密php代码的软件。
最著名的就是Zend公司的Zendencoder了,但是不是开源软件(要价很高,也没有找到破解版)。
既然收费的用不起,我们就用开源的。我找到了php_screw这个开源软件,目前最新版本是1.5
安装环境
系统:centos5.3
软件:Apache2.2.9
PHP5.2.10
以上环境全部是自己下载配置安装的。具体的Apache+php+mysql安装方法请从网上搜索。
安装
1.用tar解压缩tar-zxvfphp_screw-1.5.tar.gz
2.进入php_screw-1.5目录开始安装
cdphp_screw-1.5
phpize
关于phpize,它在php5-dev扩展模块中只要安装php5-dev模块就行了。
./confiugre
3.设置自己用来加密的密码
复制代码代码如下:

vimy_screw.h
 --PleasechangetheencryptionSEEDkey(pm9screw_mycryptkey)intothe
   valuesaccordingtowhatyoulike.
   Theencryptionwillbehardertobreak,ifyouaddmorevaluestothe
   encryptionSEEDarray.However,thesizeoftheSEEDisunrelatedto
   thetimeofthedecryptprocessing.
 * Ifyoucanreadandunderstandthesourcecode,tomodifyanoriginal
       encryptionlogicwillbepossible.Butingeneral,thisshouldnot
       benecessary.
  OPTIONAL:Encryptedscriptsgetastampaddedtothebeginningofthe
       file.Ifyoulike,youmaychangethisstampdefinedby
       PM9SCREWandPM9SCREW_LENinphp_screw.h.PM9SCREW_LENmust
       belessthanorequaltothesizeofPM9SCREW.

4.编译
make
5.拷贝modules目录下的php_screw.so文件到/usr/lib/php5/extension目录下
cpmodules/php_screw.so/usr/lib/php5/extension/
6.编辑php.ini文件
在php.ini文件里,加入如下语句
extension=php_screw.so
7.重新启动Apache
/srv/apache/bin/apachectlrestart
8.编译加密工具
cdtools
make
9.将tools目录下加密用的工具screw拷贝到适当目录
cpscrew/usr/bin/
经过以上的10步,就已经把php_screw-1.5全部安装完成了。并且现在的php也已经支持解释加密过的php文件了
使用
1.现写一个要加密的php文件。
我写了如下的一个用来测试php速度的test.php文件
复制代码代码如下:

<?
$a=0;
$t=time();
for($i=0;$i<5000000;$i++)
 {$a=$a*$i;}
$t1=time();
echo"<p>";
echo"Itused:";
echo$t1-$t;
echo"seconds";
?>

将上面的test.php文件放到/var/www/目录下。通过浏览器访问,将显示出php在大量计算时的速度(粗略估计)
2.将我们写的php文件加密
cd/var/www/
screwtest.php
我们加密后,现在目录下的test.php文件就是我们已经加密的了。而源文件被改名为test.php.screw存放了。
我们现在再测试一下test.php,看看能否正常使用?速度如何?
我比较了一下,加密前后的速度大概一样,基本没有太多的损失。
3.批处理加密文件
在debian,apache2,php5上测试过对.html文件加密后,能正确解析;
php_screw如何对当前目录下,对目录下包含的文件,以及包含目录下的文件进行整体加密
find./-name"*.php"-print|xargs-n1screw//加密所有的.php文件
find./-name"*.screw"-print/xargs-n1rm//删除所有的.php源文件的备份文件
这样在当前目录下的所有.php文件就全部背加密了