解析如何用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 相关文章推荐
Phpbean路由转发的php代码
Jan 10 PHP
浅析PHP 按位与或 (^ 、&amp;)
Jun 21 PHP
关于php操作mysql执行数据库查询的一些常用操作汇总
Jun 24 PHP
解析数组非数字键名引号的必要性
Aug 09 PHP
php中的静态变量的基本用法
Mar 20 PHP
百度地图API应用之获取用户的具体位置
Jun 10 PHP
Yii中CGridView关联表搜索排序方法实例详解
Dec 03 PHP
分享一则PHP定义函数代码
Feb 26 PHP
php输出xml属性的方法
Mar 19 PHP
几个优化WordPress中JavaScript加载体验的插件介绍
Dec 17 PHP
php中请求url的五种方法总结
Jul 13 PHP
php封装单文件上传到数据库(路径)
Oct 15 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语法(5)
2006/10/09 PHP
PHP音乐采集(部分代码)
2007/02/14 PHP
PHP 远程文件管理,可以给表格排序,遍历目录,时间排序
2009/08/07 PHP
8个必备的PHP功能开发
2015/10/02 PHP
PHP通过反射动态加载第三方类和获得类源码的实例
2015/11/27 PHP
PHP创建单例后台进程的方法示例
2017/05/23 PHP
laravel5使用freetds连接sql server的方法
2018/12/07 PHP
怎样在JavaScript里写一个swing把数据插入数据库
2012/12/10 Javascript
有关于JS构造函数的重载和工厂方法
2013/04/07 Javascript
jquery.cookie() 方法的使用(读取、写入、删除)
2013/12/05 Javascript
JS和JQ的event对象区别分析
2014/11/24 Javascript
jQuery中:only-child选择器用法实例
2015/01/03 Javascript
js改变Iframe中Src的方法
2015/05/05 Javascript
Jquery检验手机号是否符合规则并根据手机号检测结果将提交按钮设为不同状态
2015/11/26 Javascript
通用javascript代码判断版本号是否在版本范围之间
2015/11/29 Javascript
详解如何使用Vue2做服务端渲染
2017/03/29 Javascript
jQuery实现碰到边缘反弹的动画效果
2018/02/24 jQuery
小程序云开发部署攻略(图文教程)
2018/10/30 Javascript
jquery简易手风琴插件的封装
2020/10/13 jQuery
[01:01:52]完美世界DOTA2联赛PWL S2 GXR vs Magma 第二场 11.25
2020/11/26 DOTA
Python对list列表结构中的值进行去重的方法总结
2016/05/07 Python
Python 40行代码实现人脸识别功能
2017/04/02 Python
Golang与python线程详解及简单实例
2017/04/27 Python
分享一个可以生成各种进制格式IP的小工具实例代码
2017/07/28 Python
全面分析Python的优点和缺点
2018/02/07 Python
基于h5py的使用及数据封装代码
2019/12/26 Python
使用Tkinter制作信息提示框
2020/02/18 Python
python通用读取vcf文件的类(复制粘贴即可用)
2020/02/29 Python
关于Theano和Tensorflow多GPU使用问题
2020/06/19 Python
健康监测猫砂:Pretty Litter
2017/05/25 全球购物
硕士研究生就业推荐信
2014/05/18 职场文书
2014年幼儿园工作总结
2014/11/10 职场文书
新教师教学工作总结
2015/08/12 职场文书
html实现弹窗的实例
2021/06/09 HTML / CSS
Python实现抖音热搜定时爬取功能
2022/03/16 Python
详解Android中的TimePickerView(时间选择器)的用法
2022/04/30 Java/Android