달력

42024  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30



在使用PHP过程中发现,自己编写的php代码因为都是源代码方式放在服务器上的所以很容易就被别人拿走随便修改(变成自己开发的)使用了。
为了保住自己的劳动成果,我一直寻找一种可以加密php代码的软件。
最著名的就是Zend公司的Zendencoder了,但是不是开源软件(要价很高,也没有找到破解版)。
既然收费的用不起,我们就用开源的。我找到了php_screw这个开源软件,目前最新版本是1.3
网址
http://sourceforge.net/projects/php-screw/
我的安装环境
系统:Slackware 10
软件:Apache 1.3.31
PHP 4.3.7
以上环境全部是slackware 10默认安装后自带的。具体的Apache+php+mysql安装方法参照如下
支持php的Apache环境安装
获得软件
下载php_screw-1.3 (
http://prdownloads.sourceforge.net/php-screw/php_screw-1.3.tgz?download)

安装
1.将获得的php_screw-1.3.tgz文件放到/usr/local目录下,然后用tar解压缩
tar zxvf php_screw-1.3.tgz

2.进入/usr/local/php_screw-1.3目录开始安装
cd /usr/local/php_screw-1.3
phpize
./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/php/extension目录下
cp modules/php_screw.so /usr/lib/php/extension/

6.编辑php.ini文件
在php.ini文件里,加入如下语句
extension=php_screw.so

7.重新启动Apache
/etc/rc.d/rc.httpd restart

8.编译加密工具
cd tools
make

9.将tools目录下加密用的工具screw拷贝到适当目录
cp screw /usr/bin/

经过以上的10步,就已经把php_screw-1.3全部安装完成了。并且现在的php也已经支持解释加密过的php文件了
使用
1.现写一个要加密的php文件。
我写了如下的一个用来测试php速度的compute.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";
?>

将上面的compute.php文件放到/var/www/htdocs目录下。通过浏览器访问,将显示出php在大量计算时的速度(只能粗略估计一下)
2.将我们写的php文件加密
cd /var/www/htdocs/
screw compute.php

我们加密后,现在目录下的compute.php文件就是我们已经加密的了。而源文件被改名为compute.php.screw存放了。
我们现在再测试一下compute.php,看看能否正常使用?速度如何?
我比较了一下,加密前后的速度大概一样,基本没有太多的损失。

http://www.unixtech.cn/read.php?tid=463


1. DownLoad
<A class=con_link href="http://prdownloads.sourceforge.net/php-screw/" target=_blank>http://prdownloads.sourceforge.net/php-screw/</A>
2. 사전준비
- PHP4.X 이상
- PHP with zlib ( 컴파일시 --with-zlib )
으로 확인
- UNIX system OS (LINUX, FreeBSD, etc. are included)
3. 설치
% tar xvfz php_screw-XXX.tgz
% phpize
% ./configure
% vi my_screw.h
SEED KEY을 개인적으로 변경하여 사용하십시요.
% make
% cp modules/php_screw.so /usr/local/lib/php/extensions/php_screw.so
php_screw.so 를 적당한 디렉토리에 복사
% vi php.ini
를 통하여 php.ini의 위치를 확인후 해당 php.ini의 설정을 변경한다.
zend_extension="/usr/local/lib/php/extension/php_screw.so"
% /usr/local/apache/bin/apachectl restart
% cd tools
% make // 암호화툴을 컴파일 한다.
% cp screw /usr/bin
암호화툴을 적당한 디렉토리에 복사한다. PATH가 잡혀 있는 디렉토리 추천
4. 사용법
% cat test.php
% screw test.php
Success Crypting(test.php)
% ls -al
-rw-r--r-- 1 root root 38 May 23 00:56 test.php
-rw-r--r-- 1 root root 20 May 23 00:56 test.php.screw
* 영문 README 파일보기
내용출처 : [기타] 인터넷 : <A class=con_link href="http://www.ihelpers.co.kr" target=_blank>http://www.ihelpers.co.kr</A>




 

Posted by 새로운시작
|