解析如何用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 相关文章推荐
php 生成随机验证码图片代码
Feb 08 PHP
ExtJS与PHP、MySQL实现存储的方法
Apr 02 PHP
PHP采用get获取url汉字出现乱码的解决方法
Nov 13 PHP
PHP读取txt文本文件并分页显示的方法
Mar 11 PHP
php中ob_flush函数和flush函数用法分析
Mar 18 PHP
PHP实现即时输出、实时输出内容方法
May 27 PHP
joomla实现注册用户添加新字段的方法
May 05 PHP
适合PHP初学者阅读的4本经典书籍
Sep 23 PHP
ThinkPHP的SAE开发相关注意事项详解
Oct 09 PHP
PHP实现根据数组的值进行分组的方法
Apr 20 PHP
解决Laravel5.x的php artisan migrate数据库迁移创建操作报错SQLSTATE[42000]
Apr 06 PHP
PHP sdk实现在线打包代码示例
Dec 09 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/07/08 PHP
PHP 操作文件的一些FAQ总结
2009/02/12 PHP
PHP中创建图像并绘制文字的例子
2014/11/19 PHP
关于eval 与new Function 到底该选哪个?
2013/04/17 Javascript
javascript 表格内容排序 简单操作示例代码
2014/01/03 Javascript
Node.js中使用事件发射器模式实现事件绑定详解
2014/08/15 Javascript
JS字符串的切分用法实例
2016/02/22 Javascript
JS实现含有中文字符串的友好截取功能分析
2017/03/13 Javascript
canvas实现环形进度条效果
2017/03/23 Javascript
Vue 2.5.2下axios + express 本地请求404的解决方法
2018/02/21 Javascript
Vue入门之animate过渡动画效果
2018/04/08 Javascript
Angular数据绑定机制原理
2018/04/17 Javascript
[45:17]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第三场 1月9日
2021/03/11 DOTA
使用python统计文件行数示例分享
2014/02/21 Python
python中查看变量内存地址的方法
2015/05/05 Python
简单理解Python中的装饰器
2015/07/31 Python
python 3.6 +pyMysql 操作mysql数据库(实例讲解)
2017/12/20 Python
Python3使用腾讯云文字识别(腾讯OCR)提取图片中的文字内容实例详解
2020/02/18 Python
如何使用python自带IDLE的几种方法
2020/10/10 Python
Photobook澳大利亚:制作相片书,婚礼卡,旅行相簿
2017/01/12 全球购物
彼得罗夫美国官网:Peter Thomas Roth美国(青瓜面膜)
2017/11/05 全球购物
加拿大最大的钻石商店:Peoples Jewellers
2018/01/01 全球购物
存储过程的优点有哪些
2012/09/27 面试题
最受欢迎的自我评价
2013/12/22 职场文书
实习单位接收函模板
2014/01/10 职场文书
便利店投资的创业计划书
2014/01/12 职场文书
会计专业大学生求职信范文
2014/01/28 职场文书
大学军训感言800字
2014/02/27 职场文书
员工保密承诺书
2014/05/28 职场文书
文明礼仪标语
2014/06/13 职场文书
《中国梦我的梦》中学生演讲稿
2014/08/20 职场文书
信息与计算机科学职业规划范文:成为一艘有方向的船
2014/09/11 职场文书
离职报告范文
2014/11/04 职场文书
大学生个人学习总结
2015/02/15 职场文书
同学会感言
2015/07/30 职场文书
Go语言安装并操作redis的go-redis库
2022/04/14 Golang