php_screw安装使用教程(另一个PHP代码加密实现)


Posted in PHP onMay 29, 2014

开始之前,首先要澄清两个问题:第一,支持开源,不等于反对代码加密;第二,如果把不属于自己的东西(比如公司的)拿去开源,就更加不应该了。

以前知道的,PHP代码的加密都是用Zend的encoder,这东西不但是商业软件,好像还暴出过能够被破解的问题,所以就找到了替代的方案────php_screw,一个日本人开发的东东。

php_screw非常小巧,没有仔细看过它的算法,但从说明文档中看,可以自行更改SEED,然后自行编译so和可执行档。如果够牛的话,甚至可以自己去更改算法。不管怎样,对于我们这些“普通人”来说,这种加密应该就够了吧,如果真想滴水不漏,那还是不要公开的好,虽然作者说的并不是很容易就破解,但指不定哪儿有牛群呢不是么?

安装的环境需要:PHP5.x,zlib开启,autoconf,automake已安装。

测试环境:Ubuntu 8.04 hardy, PHP 5.2.3。

下载地址:http://sourceforge.net/projects/php-screw/

1、 解压,更改my_screw.h,里面的几个数字就是SEED,相当于密码,可以随意更改、增加,并且数字的多少不影响解密的速度。

2、编译so文件:

$ phpize
$ ./configure
$ make

如果出现这样的错误,那是因为autoconf没有安装:
$ make
make: *** No targets specified and no makefile found.  Stop.

3、安装so文件,编译好的文件在modules目录下,将其拷贝到php extension存放的位置,比如/usr/lib/php5/20060613+lfs下,然后在php.ini中增加:
extension = php_screw.so

4、编译用来加密文件的可执行文件:
$ cd tools
$ make

tools目录下新生成的screw就是了,放到$PATH中就可以调用了,比如要加密一个文件:
$ screw a.php
Success Crypting(a.php)

加密后的a.php执行正常,同时screw还会把原来没有加密的文件改名为.screw文件作为备份。

Update @ 2008-09-01

加密之后,还有个小问题,用require或include引用放在include_path下的加密代码时,会当做明文引过来,解决方法有两种:

使用绝对路径引用放在include_path下的加密内容,如果是自己的主机,肯定没问题的;
使用相对路径来引用,比如在本项目的子目录内,这样也是没问题的。

PHP 相关文章推荐
PHP 和 COM
Oct 09 PHP
第三节--定义一个类
Nov 16 PHP
PHP 作用域解析运算符(::)
Jul 27 PHP
PHP下利用header()函数设置浏览器缓存的代码
Sep 01 PHP
使用PHP实现蜘蛛访问日志统计
Jul 05 PHP
php自定文件保存session的方法
Dec 10 PHP
CI框架集成Smarty的方法分析
May 17 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
Jun 16 PHP
PHP的mysqli_thread_id()函数讲解
Jan 24 PHP
php 根据URL下载远程图片、压缩包、pdf等文件到本地
Jul 26 PHP
php多进程并发编程防止出现僵尸进程的方法分析
Feb 28 PHP
PHP读取文件或采集时解决中文乱码
Mar 09 PHP
PHP Curl出现403错误的解决办法
May 29 #PHP
PHP的foreach中使用引用时需要注意的一个问题和解决方法
May 29 #PHP
神盾加密解密教程(一)PHP变量可用字符
May 28 #PHP
CI框架开发新浪微博登录接口源码完整版
May 28 #PHP
PHP+javascript制作带提示的验证码源码分享
May 28 #PHP
微信支付开发教程(一)微信支付URL配置
May 28 #PHP
php中$美元符号与Zen Coding冲突问题解决方法分享
May 28 #PHP
You might like
风味层面去分析咖啡油脂
2021/03/03 咖啡文化
ThinkPHP之M方法实例详解
2014/06/20 PHP
php实现用手机关闭计算机(电脑)的方法
2015/04/22 PHP
Linux系统中设置多版本PHP共存配合Nginx服务器使用
2015/12/21 PHP
PHP树-不需要递归的实现方法
2016/06/21 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
2018/02/23 PHP
广告显示判断
2006/08/31 Javascript
jQuery层次选择器选择元素使用介绍
2013/04/18 Javascript
javascript查找字符串中出现最多的字符和次数的小例子
2013/10/29 Javascript
JavaScript 判断用户输入的邮箱及手机格式是否正确
2013/12/08 Javascript
jquery马赛克拼接翻转效果代码分享
2015/08/24 Javascript
jquery之别踩白块游戏的简单实现
2016/07/25 Javascript
JS封装通过className获取元素的函数示例
2016/12/20 Javascript
在Python中处理日期和时间的基本知识点整理汇总
2015/05/22 Python
Python 基础教程之str和repr的详解
2017/08/20 Python
python删除某个字符
2018/03/19 Python
Python实现的查询mysql数据库并通过邮件发送信息功能
2018/05/17 Python
Python实现端口检测的方法
2018/07/24 Python
Python下简易的单例模式详解
2019/04/08 Python
python接口自动化测试之接口数据依赖的实现方法
2019/04/26 Python
Python中的引用知识点总结
2019/05/20 Python
Python实用工具FuckIt.py介绍
2019/07/02 Python
flask 实现上传图片并缩放作为头像的例子
2020/01/09 Python
Python 使用 PyQt5 开发的关机小工具分享
2020/07/16 Python
加拿大休闲和工业服装和鞋类零售商:L’Équipeur
2018/01/12 全球购物
英国领先的男装设计师服装购物网站:Mainline Menswear
2018/02/04 全球购物
如何启动时不需输入用户名与密码
2014/05/09 面试题
为什么会有内存对齐
2016/10/10 面试题
如果重写了对象的equals()方法,需要考虑什么
2014/11/02 面试题
考试不及格检讨书
2014/01/09 职场文书
2014的自我评价
2014/01/13 职场文书
优秀教师先进事迹
2014/01/22 职场文书
个人廉洁自律承诺书
2014/03/27 职场文书
党员大会主持词
2014/04/02 职场文书
工作保证书范文
2014/04/29 职场文书
领导干部遵守党的政治纪律情况思想汇报
2014/09/14 职场文书