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 中文处理函数集合
Aug 27 PHP
字母顺序颠倒而单词顺序不变的php代码
Aug 08 PHP
使用php+apc实现上传进度条且在IE7下不显示的问题解决方法
Apr 25 PHP
php fsockopen伪造post与get方法的详解
Jun 14 PHP
PHP遍历某个目录下的所有文件和子文件夹的实现代码
Jun 28 PHP
ThinkPHP后台首页index使用frameset时的注意事项分析
Aug 22 PHP
php实现数组按指定KEY排序的方法
Mar 30 PHP
php读取txt文件并将数据插入到数据库
Feb 23 PHP
php 伪造HTTP_REFERER页面URL来源的三种方法
Sep 22 PHP
laravel 框架配置404等异常页面
Jan 07 PHP
PHP实现的62进制转10进制,10进制转62进制函数示例
Jun 06 PHP
PHP var关键字相关原理及使用实例解析
Jul 11 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
FCKeditor的安装(PHP)
2007/01/13 PHP
PHP图片等比缩放类SimpleImage使用方法和使用实例分享
2014/04/10 PHP
php+mysql查询优化简单实例
2015/01/13 PHP
php使用curl简单抓取远程url的方法
2015/03/13 PHP
PHP连接access数据库
2015/03/27 PHP
详解WordPress中分类函数wp_list_categories的使用
2016/01/04 PHP
PHP简单检测网址是否能够正常打开的方法
2016/09/04 PHP
懒就要懒到底——鼠标自动点击(含时间判断)
2007/02/20 Javascript
JavaScript实现x秒后自动跳转到一个页面
2013/01/03 Javascript
基于jQuery.Validate验证库知识点的详解
2013/04/26 Javascript
jquery网页回到顶部效果(图标渐隐,自写)
2014/06/16 Javascript
JavaScript字符串对象的concat方法实例(用于连接两个或多个字符串)
2014/10/16 Javascript
基于jQuery实现的图片切换焦点图整理
2014/12/07 Javascript
完美实现bootstrap分页查询
2015/12/09 Javascript
Node.js静态文件服务器改进版
2016/01/10 Javascript
浅析ES6的八进制与二进制整数字面量
2016/08/30 Javascript
微信小程序 wxapp内容组件 text详细介绍
2016/10/31 Javascript
d3.js中冷门却实用的内置函数总结
2017/02/04 Javascript
JS库 Highlightjs 添加代码行号的实现代码
2017/09/13 Javascript
Vue中render函数的使用方法
2018/01/31 Javascript
vue同步父子组件和异步父子组件的生命周期顺序问题
2018/10/07 Javascript
解决vue项目中某一页面不想引用公共组件app.vue的问题
2020/08/14 Javascript
python实现八大排序算法(1)
2017/09/14 Python
python3 实现验证码图片切割的方法
2018/12/07 Python
使用Python横向合并excel文件的实例
2018/12/11 Python
python实现广度优先搜索过程解析
2019/10/19 Python
python异常处理try except过程解析
2020/02/03 Python
利用Python将图片中扭曲矩形的复原
2020/09/07 Python
python报错TypeError: ‘NoneType‘ object is not subscriptable的解决方法
2020/11/05 Python
教你一分钟在win10终端成功安装Pytorch的方法步骤
2021/01/28 Python
HTML5是什么 HTML5是什么意思 HTML5简介
2012/10/26 HTML / CSS
飞利浦比利时官方网站:Philips比利时
2016/08/24 全球购物
继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?
2015/11/18 面试题
感恩小明星事迹材料
2014/05/23 职场文书
python 三边测量定位的实现代码
2021/04/22 Python
python内置模块之上下文管理contextlib
2022/06/14 Python