解析如何用php screw加密php源代码
2015-01-24信息快讯网
本篇文章是对用php_screw加密php源代码进行了详细的分析介绍,需要的朋友参考下
在使用PHP过程中发现,自己编写的php代码因为都是源代码方式放在服务器上的所以很容易就被别人拿走随便修改(变成自己开发的)使用了。为了保住自己的劳动成果,我一直寻找一种可以加密php代码的软件。
最著名的就是Zend公司的Zendencoder了,但是不是开源软件(要价很高,也没有找到破解版)。
既然收费的用不起,我们就用开源的。我找到了php_screw这个开源软件,目前最新版本是1.5
安装环境
系统:centos 5.3
软件:Apache 2.2.9
PHP 5.2.10
以上环境全部是自己下载配置安装的。具体的Apache+php+mysql安装方法请从网上搜索。
安装
1.用tar解压缩 tar -zxvf php_screw-1.5.tar.gz
2.进入php_screw-1.5目录开始安装
cd php_screw-1.5
phpize
关于phpize ,它在php5-dev扩展模块中 只要安装php5-dev模块就行了。
./confiugre
3.设置自己用来加密的密码
vi my_screw.h -- Please change the encryption SEED key (pm9screw_mycryptkey) into the values according to what you like. The encryption will be harder to break, if you add more values to the encryption SEED array. However, the size of the SEED is unrelated to the time of the decrypt processing. * If you can read and understand the source code, to modify an original encryption logic will be possible. But in general, this should not be necessary. OPTIONAL: Encrypted scripts get a stamp added to the beginning of the file. If you like, you may change this stamp defined by PM9SCREW and PM9SCREW_LEN in php_screw.h. PM9SCREW_LEN must be less than or equal to the size of PM9SCREW.
4.编译
make
5.拷贝modules目录下的php_screw.so文件到/usr/lib/php5/extension目录下
cp modules/php_screw.so /usr/lib/php5/extension/
6.编辑php.ini文件
在php.ini文件里,加入如下语句
extension=php_screw.so
7.重新启动Apache
/srv/apache/bin/apachectl restart
8.编译加密工具
cd tools
make
9.将tools目录下加密用的工具screw拷贝到适当目录
cp screw /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 "It used:"; echo $t1-$t; echo "seconds"; ?>
将上面的test.php文件放到/var/www/目录下。通过浏览器访问,将显示出php在大量计算时的速度(粗略估计)
2.将我们写的php文件加密
cd /var/www/
screw test.php
我们加密后,现在目录下的test.php文件就是我们已经加密的了。而源文件被改名为test.php.screw存放了。
我们现在再测试一下test.php,看看能否正常使用?速度如何?
我比较了一下,加密前后的速度大概一样,基本没有太多的损失。
3.批处理加密文件
在debian, apache2, php5上测试过对.html文件加密后,能正确解析;
php_screw如何对当前目录下,对目录下包含的文件,以及包含目录下的文件进行整体加密
find ./ -name "*.php"-print|xargs -n1 screw //加密所有的.php文件
find ./ -name "*.screw" -print/xargs -n1 rm //删除所有的.php源文件的备份文件
这样在当前目录下的所有.php文件就全部背加密了
简单的php中文转拼音的实现代码
PHP字符串的递增和递减示例介绍
thinkphp3查询mssql数据库乱码解决方法分享
php发送post请求的三种方法
php创建sprite
采用header定义为文件然后readfile下载(隐藏下载地址)
preg_match_all使用心得分享
基于preg_match_all采集后数据处理的一点心得笔记(编码转换和正则匹配)
基于php和mysql的简单的dao类实现crud操作功能
使用php伪造referer的方法 利用referer防止图片盗链
php递归函数中使用return的注意事项
利用浏览器的Javascript控制台调试PHP程序
linux实现php定时执行cron任务详解
PHP函数microtime()用法与说明
PHP加密扩展库Mcrypt安装和实例
PHP imagegrabscreen和imagegrabwindow(截取网站缩略图)的实例代码
FireFox浏览器使用Javascript上传大文件
PHP加密函数 Javascript/Js 解密函数
PHP和JavaScrip分别获取关联数组的键值示例代码
浅析使用Turck-mmcache编译来加速、优化PHP代码
php_screw 1.5:php加密: 安装与使用详解
php连接Access数据库错误及解决方法
PHP连接Access数据库的方法小结
如何使用php判断所处服务器操作系统的类型
解析如何在PHP下载文件名中解决乱码的问题
用Json实现PHP与JavaScript间数据交换的方法详解
解析php中die(),exit(),return的区别
Android ProgressBar进度条和ProgressDialog进度框的展示DEMO
慎用preg_replace危险的/e修饰符(一句话后门常用)
解析mysql left( right ) join使用on与where筛选的差异
关于shopex同步ucenter的redirect问题,导致script不运行
php 无法加载mcrypt.dll的解决办法
PHP/Javascript/CSS/jQuery常用知识大全详细整理第1/2页
php和javascript之间变量的传递实现代码