php源码加密方法详解-php教程

资源魔 96 0

尽管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文件就全副被加密了。

相理解更多相干成绩请拜访资源魔:PHP视频教程

以上就是php源码加密办法详解的具体内容,更多请存眷资源魔其它相干文章!

标签: php php开发教程 php开发资料 php开发自学 加密 源码

抱歉,评论功能暂时关闭!