>백엔드 개발 >PHP 튜토리얼 >PHP 소스코드 암호화 방법에 대한 자세한 설명

PHP 소스코드 암호화 방법에 대한 자세한 설명

王林
王林앞으로
2019-09-06 10:13:345805검색

PHP 소스코드 암호화 방법에 대한 자세한 설명

PHP는 세계 최고의 언어이지만 약한 유형의 언어로 인해 보안 문제도 있습니다. 예를 들어, CVE-2014-0166의 쿠키 위조는 PHP 해시 비교의 결함을 이용했습니다.

다음은 소스 코드 암호화 기술에 대한 소개입니다.

암호화 소프트웨어 (php_screw)

다운로드 주소: http://sourceforge.net/projects/php-screw/

설명: php 파일은 일반적으로 서버 측에 텍스트 형식으로 저장되므로 소스 코드를 다른 사람이 쉽게 읽을 수 있습니다. 이 기능을 수행하려면 소스 코드를 암호화해야 합니다

하나는 다음과 같습니다. : 암호화 프로그램, PHP 파일 암호화 실현

다른 하나는 암호화된 PHP 파일을 구문 분석하여 실행 결과를 얻는 것입니다. 전자의 구현은 비교적 간단하며 후자의 구현은 대부분입니다. php 모듈을 통해 형태로 구현됩니다.

php_screw(나사)는 위의 기능을 수행할 수 있습니다. 최신 버전은 1.5이며 sourceforge에서 다운로드할 수 있습니다. php_screw(螺丝钉)可以实现以上的功能.最新版本是1.5,可以在sourceforge上下载.

php_screw

php_screw는 일본어로 개발된 PHP 암호화 프로그램입니다. .그러나 LINUX

Installation

에서만 실행할 수 있습니다. 설명: 설치의 목적은 실제로 두 개의 파일을 생성하는 것입니다. 하나는 PHP 파일을 암호화하기 위한 나사이고 다른 하나는 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. 모듈 디렉터리의 php_screw.so 파일을 /usr/lib/에 복사하세요. php5 /extension 디렉토리

make

6. php.ini 파일을 편집하세요

php.ini 파일에 다음 문장을 추가하세요

cp modules/php_screw.so /usr/lib/php5/extension/

7. 암호화 도구를 컴파일하세요

extension=php_screw.so

9. tools 디렉터리 암호화 도구 나사를 해당 디렉터리에 복사하세요

/srv/apache/bin/apachectl restart

위의 10단계를 거쳐 php_screw-1.5가 완전히 설치되었습니다. 이제 PHP는 암호화된 PHP 파일의 해석도 지원합니다

Use

1. 이제 암호화할 PHP 파일을 작성하세요.

php 속도를 테스트하기 위해 다음 test.php 파일을 작성했습니다

코드 복사 코드는 다음과 같습니다.

cd tools
make

위 test.php 파일을 /var/www/ 디렉토리에 넣어주세요. 브라우저를 통해 접속하면 대규모 계산으로 PHP의 속도를 알 수 있습니다(대략적인 추정)

2. 우리가 작성한 PHP 파일을 암호화합니다

cp screw /usr/bin/

암호화한 후 현재 디렉토리에 있는 test.php 파일이 우리가 만든 것입니다. 암호화했습니다. 소스 파일의 이름은 test.php.screw로 변경되어 저장되었습니다.

이제 test.php를 테스트하여 정상적으로 사용할 수 있는지 확인해볼까요? 속도는 어떻습니까?

비교해본 결과 암호화 전과 후의 속도는 거의 같고, 기본적으로 손실은 별로 없는 것으로 나타났습니다.

3. 일괄 암호화된 파일

.html 파일을 암호화한 후 debian, apache2, php5에서 테스트되었으며 올바르게 구문 분석될 수 있습니다.

php_screw가 현재 디렉터리, 해당 디렉터리에 포함된 파일 및 포함된 디렉터리가 있습니까? 현재 디렉터리의 모든 .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";
?>

을 암호화하세요.

관련 질문이 더 필요하시면 PHP 중국어 웹사이트를 방문하세요:

PHP 비디오 튜토리얼

위 내용은 PHP 소스코드 암호화 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제