解析如何用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 相关文章推荐
服务器端解压缩zip的脚本
Dec 22 PHP
PHP提示Notice: Undefined variable的解决办法
Nov 24 PHP
PHP中如何调用webservice的实例参考
Apr 25 PHP
php连接Access数据库错误及解决方法
Jun 20 PHP
使用URL传输SESSION信息
Jul 14 PHP
PHP防盗链的基本思想 防盗链的设置方法
Sep 25 PHP
php基于自定义函数记录log日志方法
Jul 21 PHP
PHP实现基于栈的后缀表达式求值功能
Nov 10 PHP
php+redis实现商城秒杀功能
Nov 19 PHP
php ajax数据传输和响应方法
Aug 21 PHP
PHP+jQuery实现双击修改table表格功能示例
Feb 21 PHP
PHP Swoole异步读取、写入文件操作示例
Oct 24 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
coreseek 搜索英文的问题详解
2013/06/08 PHP
PHP数据过滤的方法
2013/10/30 PHP
php异常处理方法实例汇总
2015/06/24 PHP
PHP内核探索之变量
2015/12/22 PHP
基于jQuery实现图片的前进与后退功能
2013/04/24 Javascript
js 获取radio按钮值的实例
2013/08/17 Javascript
jquery中push()的用法(数组添加元素)
2014/11/25 Javascript
js实现仿京东2级菜单效果(带延时功能)
2015/08/27 Javascript
PassWord输入框代码分享
2016/06/07 Javascript
快速解决js动态改变dom元素属性后页面及时渲染的问题
2016/07/06 Javascript
详解微信小程序 wx.uploadFile 的编码坑
2017/01/23 Javascript
react.js CMS 删除功能的实现方法
2017/04/17 Javascript
element-ui 表格实现单元格可编辑的示例
2018/02/26 Javascript
使用vue-aplayer插件时出现的问题的解决
2018/03/02 Javascript
详解微信小程序之scroll-view的flex布局问题
2019/01/16 Javascript
浅谈js闭包理解
2019/04/01 Javascript
基于vue开发微信小程序mpvue-docs跳转页面功能
2019/04/10 Javascript
详解vue 动态加载并注册组件且通过 render动态创建该组件
2019/05/30 Javascript
java直接调用python脚本的例子
2014/02/16 Python
简述Python中的面向对象编程的概念
2015/04/27 Python
python爬虫框架scrapy实现模拟登录操作示例
2018/08/02 Python
python opencv人脸检测提取及保存方法
2018/08/03 Python
python 字符串只保留汉字的方法
2018/11/16 Python
详解用python自制微信机器人,定时发送天气预报
2019/03/25 Python
python之mock模块基本使用方法详解
2019/06/27 Python
python 根据网易云歌曲的ID 直接下载歌曲的实例
2019/08/24 Python
解决Jupyter Notebook使用parser.parse_args出现错误问题
2020/04/20 Python
python适合做数据挖掘吗
2020/06/16 Python
python 实现百度网盘非会员上传超过500个文件的方法
2021/01/07 Python
Python 生成短8位唯一id实战教程
2021/01/13 Python
物流管理专业毕业生求职信
2014/03/23 职场文书
城管大队整治方案
2014/05/06 职场文书
环卫个人总结
2015/03/03 职场文书
教师节获奖感言
2015/07/31 职场文书
2019自荐信范文集锦!
2019/07/03 职场文书
java项目构建Gradle的使用教程
2022/03/24 Java/Android