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的ob_start();控制您的浏览器cache!
Nov 25 PHP
linux php mysql数据库备份实现代码
Mar 10 PHP
用php的ob_start来生成静态页面的方法分析
Mar 09 PHP
PHP大批量数据操作时临时调整内存与执行时间的方法
Apr 20 PHP
探讨Smarty中如何获取数组的长度以及smarty调用php函数的详解
Jun 20 PHP
解析PHPExcel使用的常用说明以及把PHPExcel整合进CI框架的介绍
Jun 24 PHP
PHP ignore_user_abort函数详细介绍和使用实例
Jul 15 PHP
php使用memcoder将视频转成mp4格式的方法
Mar 12 PHP
注释PHP和html混合代码的小技巧(分享)
Nov 03 PHP
php mysql操作mysql_connect连接数据库实例详解
Dec 26 PHP
Laravel 中使用 Vue.js 实现基于 Ajax 的表单提交错误验证操作
Jun 30 PHP
PHP截取发动短信内容的方法
Jul 04 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
Email+URL的判断和自动转换函数
2006/10/09 PHP
php桌面中心(一) 创建数据库
2007/03/11 PHP
php daddslashes()和 saddslashes()有哪些区别分析
2012/10/26 PHP
PHP中比较时间大小实例
2014/08/21 PHP
10个超级有用值得收藏的PHP代码片段
2015/01/22 PHP
学习php设计模式 php实现命令模式(command)
2015/12/08 PHP
php metaphone()函数及php localeconv() 函数实例解析
2016/05/15 PHP
PHP5.6新增加的可变函数参数用法分析
2017/08/25 PHP
js获取url参数的使用扩展实例
2007/12/29 Javascript
jquery easyui的tabs使用时的问题
2010/03/23 Javascript
js 多浏览器分别判断代码
2010/04/01 Javascript
JQuery异步加载无限下拉框级联功能实现示例
2014/02/19 Javascript
jquery计算出left和top,让一个div水平垂直居中的简单实例
2016/07/13 Javascript
js从数组中删除指定值(不是指定位置)的元素实现代码
2016/09/13 Javascript
用js实现博客打赏功能
2016/10/24 Javascript
微信小程序 弹幕功能简单实例
2017/02/14 Javascript
微信小程序 地图map实例详解
2017/06/07 Javascript
微信小程序实现图片上传功能
2018/05/28 Javascript
微信小程序自定义键盘 内部虚拟支付
2018/12/20 Javascript
vue-cli3+typescript初体验小结
2019/02/28 Javascript
详解JavaScript作用域 闭包
2020/07/29 Javascript
vue打包通过image-webpack-loader插件对图片压缩优化操作
2020/11/12 Javascript
python操作redis的方法
2015/07/07 Python
深入浅析Python中join 和 split详解(推荐)
2016/06/30 Python
python: line=f.readlines()消除line中\n的方法
2018/03/19 Python
解决Python pandas df 写入excel 出现的问题
2018/07/04 Python
基于python的socket实现单机五子棋到双人对战
2020/03/24 Python
python代码编写计算器小程序
2020/03/30 Python
Python简易版停车管理系统
2019/08/12 Python
详解numpy矩阵的创建与数据类型
2019/10/18 Python
女大学生个人求职信
2013/12/09 职场文书
高级工程师岗位职责
2013/12/15 职场文书
2015年度残疾人工作总结
2015/05/14 职场文书
电力安全学习心得体会
2016/01/18 职场文书
建立共青团委员会的请示
2019/04/02 职场文书
销区经理年终述职报告模板
2019/11/28 职场文书