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 相关文章推荐
第七节 类的静态成员 [7]
Oct 09 PHP
PHP输出控制功能在简繁体转换中的应用
Oct 09 PHP
linux php mysql数据库备份实现代码
Mar 10 PHP
PHP中__get()和__set()的用法实例详解
Jun 04 PHP
php用header函数实现301跳转代码实例
Nov 25 PHP
php实现的返回数据格式化类实例
Sep 22 PHP
PHP中让curl支持sock5的代码实例
Jan 21 PHP
[原创]解决wincache不支持64位PHP5.5/5.6的问题(提供64位wincache下载)
Jun 22 PHP
PHP经典实用正则表达式小结
May 04 PHP
php制作圆形用户头像的实例_自定义封装类源代码
Sep 18 PHP
PHP自动生成缩略图函数的源码示例
Mar 18 PHP
浅谈laravel orm 中的一对多关系 hasMany
Oct 21 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
php使用socket post数据到其它web服务器的方法
2015/06/02 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
2018/03/02 PHP
php实现简单的守护进程创建、开启与关闭操作
2019/08/13 PHP
用 JSON 处理缓存
2007/04/27 Javascript
JavaScript 模拟用户单击事件
2009/12/31 Javascript
JavaScript高级程序设计阅读笔记(六) ECMAScript中的运算符(二)
2012/02/27 Javascript
js实现动态改变字体大小代码
2014/01/02 Javascript
js中直接声明一个对象的方法
2014/08/10 Javascript
一款基于jQuery的图片场景标注提示弹窗特效
2015/01/05 Javascript
使用JavaScript和CSS实现文本隔行换色的方法
2015/11/04 Javascript
基于JavaScript如何实现ajax调用后台定义的方法
2015/12/29 Javascript
深入理解JavaScript中的并行处理
2016/09/22 Javascript
js仿微信语音播放实现思路
2016/12/12 Javascript
利用jquery禁止外层滚动条的滚动
2017/01/05 Javascript
关于HTML5的data-*自定义属性的总结
2018/05/05 Javascript
Node.js Buffer用法解读
2018/05/18 Javascript
vue自定义表单生成器form-create使用详解
2019/07/19 Javascript
vue.config.js常用配置详解
2019/11/14 Javascript
[47:12]TFT vs Secret Supermajor小组赛C组 BO3 第三场 6.3
2018/06/04 DOTA
python使用插值法画出平滑曲线
2018/12/15 Python
linux下python中文乱码解决方案详解
2019/08/28 Python
Python 之 Json序列化嵌套类方式
2020/02/27 Python
解决jupyter notebook打不开无反应 浏览器未启动的问题
2020/04/10 Python
解决Alexnet训练模型在每个epoch中准确率和loss都会一升一降问题
2020/06/17 Python
Python 添加文件注释和函数注释操作
2020/08/09 Python
Python性能测试工具Locust安装及使用
2020/12/01 Python
HTML5打开本地app应用的方法
2016/03/31 HTML / CSS
html5视频播放_动力节点Java学院整理
2017/07/13 HTML / CSS
自荐书封面下载
2013/11/29 职场文书
市政施工员自我鉴定
2014/01/15 职场文书
军训自我鉴定
2014/01/22 职场文书
机械设计制造及其自动化专业求职信
2014/06/17 职场文书
小学优秀学生评语
2014/12/29 职场文书
萤火虫之墓观后感
2015/06/05 职场文书
一起来学习Python的元组和列表
2022/03/13 Python
SpringBoot接入钉钉自定义机器人预警通知
2022/07/15 Java/Android