虽然PHP是世界上最好的言语,然则也有一些因为弱范例言语的平安性题目涌现。WordPress历史上就涌现过因为PHP自身的缺点而形成的一些平安性题目,如CVE-2014-0166 中的cookie捏造就是利用了PHP Hash比较的缺点。
下面为人人引见一种源码加密手艺:
加密软件(php_screw)
下载地点:http://sourceforge.net/projects/php-screw/
形貌:php文件通常以文本格式存贮在服务器端, 很轻易被他人读到源代码, 为了对源代码举行庇护, 能够采纳对源代码举行加密的体式格局.要完成该功用须要两部分
一是:加密顺序,完成对PHP文件的加密
另一个就是:对加密过的PHP文件举行剖析, 以获得运转效果. 前者的完成比较简单, 就是一顺序罢了. 后者的完成大部分都是经由过程php module的情势来完成的。
php_screw
(螺丝钉)能够完成以上的功用.最新版本是1.5,能够在sourceforge上下载.
php_screw
是一个日本人开辟的PHP加密顺序,但只能在LINUX下运转
装置
形貌:装置的目标实在就是发生两个文件,一个是用于加密PHP文件的screw, 另一
个就是php加载的剖析模块php_screw.so
装置环境
体系: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文件就悉数被加密了。
相相识更多相干题目请接见ki4网:PHP视频教程
以上就是php源码加密要领详解的细致内容,更多请关注ki4网别的相干文章!