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


Posted in PHP onJune 20, 2013

在使用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 相关文章推荐
我的论坛源代码(四)
Oct 09 PHP
js下函数般调用正则的方法附代码
Jun 22 PHP
php 结果集的分页实现代码
Mar 10 PHP
sae使用smarty模板的方法
Dec 17 PHP
php中操作memcached缓存进行增删改查数据的实现代码
Aug 15 PHP
PHP开发Apache服务器配置
Jul 15 PHP
PHP邮箱验证示例教程
Jun 01 PHP
PHP函数引用返回的实例详解
Sep 11 PHP
Yii2单元测试用法示例
Nov 12 PHP
详解PHP5.6.30与Apache2.4.x配置
Jun 02 PHP
php中访问修饰符的知识点总结
Jan 27 PHP
MacOS下PHP7.1升级到PHP7.4.15的方法
Feb 22 PHP
php_screw 1.5:php加密: 安装与使用详解
Jun 20 #PHP
php连接Access数据库错误及解决方法
Jun 20 #PHP
PHP连接Access数据库的方法小结
Jun 20 #PHP
如何使用php判断所处服务器操作系统的类型
Jun 20 #PHP
解析如何在PHP下载文件名中解决乱码的问题
Jun 20 #PHP
解析smarty 截取字符串函数 truncate的用法介绍
Jun 20 #PHP
完美解决令人抓狂的zend studio 7代码提示(content Assist)速度慢的问题
Jun 20 #PHP
You might like
用PHP调用数据库的存贮过程
2006/10/09 PHP
FCKeditor的安装(PHP)
2007/01/13 PHP
那些年一起学习的PHP(一)
2012/03/21 PHP
实现PHP+Mysql无限分类的方法汇总
2015/03/02 PHP
PHP输出缓冲控制Output Control系列函数详解
2015/07/02 PHP
CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患分析
2019/02/28 PHP
PHP实现简单的协程任务调度demo示例
2020/02/01 PHP
兼容FireFox 的 js 日历 支持时间的获取
2009/03/04 Javascript
JQuery的Ajax跨域请求原理概述及实例
2013/04/26 Javascript
Javascript实现页面跳转的几种方式分享
2013/10/26 Javascript
javascript 实现 原路返回
2015/01/21 Javascript
PHP+jQuery+Ajax实现多图片上传效果
2015/03/14 Javascript
JavaScript常用函数工具集:lao-utils
2016/03/01 Javascript
JS上传组件FileUpload自定义模板的使用方法
2016/05/10 Javascript
iframe中使用jquery进行查找的方法【案例分析】
2016/06/17 Javascript
Vue中使用的EventBus有生命周期
2018/07/12 Javascript
webpack配置proxyTable时pathRewrite无效的解决方法
2018/12/13 Javascript
js中火星坐标、百度坐标、WGS84坐标转换实现方法示例
2020/03/02 Javascript
[01:30:54]《加油DOTA》 第三期
2014/08/18 DOTA
浅谈python内置变量-reversed(seq)
2017/06/21 Python
python网络爬虫之如何伪装逃过反爬虫程序的方法
2017/11/23 Python
pandas.dataframe按行索引表达式选取方法
2018/10/30 Python
python批量修改图片尺寸,并保存指定路径的实现方法
2019/07/04 Python
python+selenium+PhantomJS抓取网页动态加载内容
2020/02/25 Python
scrapy爬虫:scrapy.FormRequest中formdata参数详解
2020/04/30 Python
详解vscode实现远程linux服务器上Python开发
2020/11/10 Python
Django实现简单的分页功能
2021/02/22 Python
is_file和file_exists效率比较
2021/03/14 PHP
AE美国鹰美国官方网站:American Eagle Outfitters
2016/08/22 全球购物
百年校庆节目主持词
2014/03/27 职场文书
高中学生自我评价范文
2014/09/23 职场文书
大学生个人总结范文
2015/02/15 职场文书
党支部创先争优公开承诺书
2015/04/30 职场文书
律政俏佳人观后感
2015/06/09 职场文书
Win10服务主机占用内存怎么办?Win10服务主机进程占用大量内存解决方法
2022/09/23 数码科技