PHP 소스를 암호화 하는 경우는 mysql 접속 계정이 들어있는 파일이나 ftp 접속 계정, 계정 생성 암호화 방식, DB테이블 구조 등 여러가지 이유에서 소스를 아무도 열어볼 수 없게 하고 싶을 때 입니다.
일반적으로 소스 파일을 열어보면 누구나 쉽게 내용을 볼 수 가 있죠. 이것을 바이너리 파일로 변환하여 알아볼 수 없게 만듭니다.
그러나 파일자체로서는 동작을 합니다.
(중요) 소스를 암호화 하면 내용을 복호화 하지 못하므로, 개발자는 암호화되기전의 원본 소스 파일을 별도로 보관해야 합니다.
그럼 사용방법을 알아보도록 하겠습니다.
1. 다운로드
# cd /usr/local/src # wget wget –no-check-certificate http://sourceforge.net/projects/php-screw/files/php-screw/1.5/php_screw-1.5.tar.gz
2. 설치
# cd php_screw-1.5 # /usr/local/php/bin/phpize # ./configure –with-php-config=/usr/local/php/bin/php-config # make
make 명령에서 에러날 경우 /usr/local/src/php_screw-1.5/php_screw.c: In function ‘pm9screw_compile_file’: /usr/local/src/php_screw-1.5/php_screw.c:78: error: too few arguments to function ‘org_compile_file’ /usr/local/src/php_screw-1.5/php_screw.c:84: error: too few arguments to function ‘org_compile_file’ /usr/local/src/php_screw-1.5/php_screw.c:93: error: too few arguments to function ‘org_compile_file’ make: *** [php_screw.lo] 오류 1 php_screw.c 파일의 78,84,93 라인을 수정해줍니다. org_compile_file(file_handle, type); // 수정 전 org_compile_file(file_handle, type TSRMLS_CC); // 수정 후 그리고 make clean, 다시 make 를 진행합니다. |
# make clean # make
# make install # cp -arp /usr/local/php/lib/php/extensions/no-debug-zts-20060613/php_screw.so /usr/local/php/lib/
3. 설정
# vi /usr/local/apache/conf/php.ini
extension_dir = “/usr/local/php/lib” extension = “php_screw.so” |
apache 를 재시작하여 적용합니다.
# /usr/local/apache/bin/apachectl restar
4. 명령어 복사
# cd tools # make # cp -arp screw /usr/bin/
5. 사용 방법
이제 PHP 소스 파일을 암호화 할 수 있습니다.
적용 방식은 아래와 같습니다.
예) screw phpinfo.php
결과) phpinfo.php 는 암호화 처리되며, 원본파일은 phpinfo.php.screw 로 남게 됩니다.