一是加密程序,實(shí)現(xiàn)對(duì)PHP文件的加密. 另一個(gè)就是對(duì)加密過(guò)的PHP文件 " /> 亚洲精品国产SUV,国产一区免费在线观看,老师湿乎乎两半嫩

天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

php_screw 1.5:php加密: 安裝與使用詳解

php文件通常以文本格式存貯在服務(wù)器端, 很容易被別人讀到源代碼, 為了對(duì)源代碼進(jìn)行保護(hù), 可以采用對(duì)源代碼進(jìn)行加密的方式.要實(shí)現(xiàn)該功能需要兩部分:

一是加密程序,實(shí)現(xiàn)對(duì)php文件的加密. 另一個(gè)就是對(duì)加密過(guò)的php文件進(jìn)行解析, 以得到運(yùn)行結(jié)果. 前者的實(shí)現(xiàn)比較簡(jiǎn)單, 就是一程序而已. 后者的實(shí)現(xiàn)大部分都是通過(guò)php module的形式來(lái)實(shí)現(xiàn)的.

php_screw(螺絲釘)可以實(shí)現(xiàn)以上的功能.最新版本是1.5,可以在sourceforge上下載.
安裝:
安裝的目的其實(shí)就是產(chǎn)生兩個(gè)文件:一個(gè)是用于加密php文件的screw, 另一個(gè)就是php加載的解析模塊php_screw.so
1.將源代碼包展開(kāi), 并進(jìn)入該入目錄:
2. 執(zhí)行phpize, 就會(huì)在該目錄下產(chǎn)生一個(gè)configure
3. 然后,運(yùn)行configure
4. 再make
這樣, 解析用的php_screw.so就生成了. 接下來(lái)要得到加密用的screw
1. 進(jìn)入源碼的tools目錄
2. make
這樣就生成了screw了. 如果要加密一個(gè)lx.php文件, 則: screw lx.php, lx.php就變成加密的了, 原來(lái)明文的lx.php被改名為lx.php.screw
接下來(lái)的任務(wù)就應(yīng)該是加載php_screw.so模塊了,
首先, 將該文件COPY到module目錄下, 具體是哪個(gè)目錄,可以參見(jiàn)/etc/php.ini配置文件中的extension_dir項(xiàng),RHEL 5中為/usr/lib/php/modules
方法一:可以在/etc/php.d目錄下新建一個(gè)screw.ini文件(文件是可以任意取的),其內(nèi)容是一句話extension=php_screw.so
方法二:通過(guò)修改php.ini文件, 增加了一句extension=php_screw.so, 重啟apache后就成功了.
重要說(shuō)明:
編譯的.so文件理論上跟你當(dāng)前的php版本是相關(guān)的,也就是說(shuō),如果你是在php 5.1下編譯的,就不能拿到php 5.2下去用,因?yàn)?a href=/itjie/phpjishu/ target=_blank class=infotextkey>php的可加載模塊總是與其版本相關(guān)的.而加密用的screw可執(zhí)行文件理論上講無(wú)所謂,只有他跟screw.so屬于同一個(gè)版本就可以
測(cè)試:
編寫(xiě)一個(gè)hello, world程序,文件名為hello.php如下:
復(fù)制代碼 代碼如下:
<?phpecho
"Hello,world";
?>

php  hello.php測(cè)試程序是否能成功顯示, 成功顯示后, 用screw對(duì)其進(jìn)行加密(screw  helllo.php), 然后cat一下該php文件, 發(fā)現(xiàn)已經(jīng)不是文本的了, 變成了許多亂字符, 說(shuō)明加秘成功, 然后再php  hello.php, 如果能正常顯示hello,world, 則說(shuō)明加密的解析也沒(méi)有問(wèn)題了, 一切就算OK了.否則, 就說(shuō)明還有不對(duì)的地方, 需要再仔細(xì)檢查.
安裝過(guò)程中遇到的問(wèn)題:
1.找不到phpize
phpize是屬于php-develp的一個(gè)工具, (具體作用請(qǐng)自行解決) 因此, 必須要安裝php-develp包. 中間有一些依賴, 如下:
復(fù)制代碼 代碼如下:
[root@localhost Server]# rpm -ivh php-devel-5.1.6-5.el5.i386.rpm
 warning: php-devel-5.1.6-5.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
 error: Failed dependencies:
 autoconf is needed by php-devel-5.1.6-5.el5.i386
 automake is needed by php-devel-5.1.6-5.el5.i386
 [root@localhost Server]# rpm -ivh autoconf
 autoconf213-2.13-12.1.noarch.rpm autoconf-2.59-12.noarch.rpm
 [root@localhost Server]# rpm -ivh autoconf-2.59-12.noarch.rpm
 warning: autoconf-2.59-12.noarch.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
 error: Failed dependencies:
 imake is needed by autoconf-2.59-12.noarch
 [root@localhost Server]# rpm -ivh imake-1.0.2-3.i386.rpm
 warning: imake-1.0.2-3.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
 Preparing... ########################################### [100%]
 1:imake ########################################### [100%]
 [root@localhost Server]# rpm -ivh autoconf-2.59-12.noarch.rpm
 warning: autoconf-2.59-12.noarch.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
 Preparing... ########################################### [100%]
 1:autoconf ########################################### [100%]
 [root@localhost Server]# rpm -ivh automake
 automake14-1.4p6-13.noarch.rpm automake16-1.6.3-8.noarch.rpm automake-1.9.6-2.1.noarch.rpm
 automake15-1.5-16.noarch.rpm automake17-1.7.9-7.noarch.rpm
 [root@localhost Server]# rpm -ivh automake-1.9.6-2.1.noarch.rpm
 warning: automake-1.9.6-2.1.noarch.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
 Preparing... ########################################### [100%]
 1:automake ########################################### [100%]
 [root@localhost Server]# rpm -ivh php-devel-5.1.6-5.el5.i386.rpm
 warning: php-devel-5.1.6-5.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
 Preparing... ########################################### [100%]
 1:php-devel ########################################### [100%]

2.每個(gè)加密的文件頭部都一個(gè)很明顯的字符串PM9SCREW, 這樣很容易被人猜到是用screw加密的.
這個(gè)問(wèn)題的解決需要在安裝的第一步就開(kāi)始. 該標(biāo)識(shí)串在源碼的php_screw.h中. 在編譯之前, 可以更改這個(gè)字符串, 例如,更改為PeterHu, 相應(yīng)的下面的長(zhǎng)度就不再是10了, 而是/tPeterHu/t,一共7個(gè)了.
復(fù)制代碼 代碼如下:
#define PM9SCREW        "/tPM9SCREW/t"
#define PM9SCREW_LEN     10

==================================================================================
網(wǎng)上看了好多php_SCREW安裝文章.也看過(guò)好幾次源碼報(bào)里的READEME.
真折騰,要么腳本方式執(zhí)行不了,要么網(wǎng)頁(yè)無(wú)法顯示.經(jīng)過(guò)不屈不撓的折騰終于折騰出來(lái)了......分享以下方法...若有大蝦知道具體原因不妨指點(diǎn)一二.
PS:CentOS release 5.8 (Final),php5.2.x
下載php-screw-1.5,若是php4用php-screw-1.3
源碼包:http://sourceforge.NET/projects/php-screw/files/latest/download?source=files
源碼包放到/usr/local下,開(kāi)始安裝咯
1.tar -zxvf php_screw-1.5.tar.gz(出來(lái)permission之類錯(cuò)誤就加sudo)
2.cd php_screw_1.5
3.phpize(執(zhí)行不了就寫(xiě)phpize的絕對(duì)路徑,裝好了的前提下)
4.vi my_screw.h(里面是密碼,想改就改,最好不要超過(guò)5位數(shù),若改了要記好,因?yàn)橹匦戮幾g時(shí)要用)
5.vi php_screw.h(里面是加密字符串,默認(rèn)是PM9SCREW,最好改成別的字符串,字符串變了下面長(zhǎng)度也要跟著變,改成LOVE的話長(zhǎng)度就是6了,字符串要記下)
6. ./configure
7. make && make install
成功了會(huì)輸出:Installing shared extensions:     /usr/lib64/php/modules/(這個(gè)目錄是/etc下php.ini里extension_dir指定的目錄).php_screw.so文件就在這里,當(dāng)然編譯目錄的modules下也有.
8. cd tools/
9. make
這樣生成了加密用的程序screw了
10. cp screw /usr/bin下
這樣加密的時(shí)候可以直接screw 文件名了,不用寫(xiě)screw的路徑
11.修改ini
cd /etc/php.d(這里是php.ini加載的各種擴(kuò)展可以在這寫(xiě),打開(kāi)別的文件看看就知道了)
vi php_screw.ini
里面寫(xiě)上extension=php_screw.so保存退出
12.重啟apache
在根目錄下創(chuàng)建hello.php
<?echo 'hello';?>
php hello.php
輸出:hello
screw hello.php
輸出:Success Crypting(hello.php),說(shuō)明加密成功,目錄下會(huì)多出一個(gè)文件hello.php.screw,現(xiàn)在的hello.php已經(jīng)是加密過(guò)的了,而多出的則是源文件的備份.
cat hello.php顯示亂碼.
php hello.php 輸出hello.腳本方式解析加密文件成功了.
在根目錄下建立phpinfo,里面若有php_screw擴(kuò)展相關(guān)信息就說(shuō)明可以通過(guò)瀏覽器訪問(wèn)加密的文件了.不用繼續(xù)往下看了.我是有兩個(gè)php.ini,網(wǎng)頁(yè)跟腳本方式調(diào)用的ini不同.
接下來(lái)要重新編譯一次了,為了可以在網(wǎng)頁(yè)里正常顯示.
1.去編譯目錄
make clean
然后把目錄給刪了.
2.tar -zxvf php_screw.1.5.tar.gz重新解壓
3. phpize
4. myscrew.h跟php_screw.h里的密碼跟字符串記得要跟之前的一樣
5. ./configure --with-php-config=php-config路徑(php安裝目錄下有)
6.make && make install
輸出:Installing shared extensions:     /var/www/php5/lib/php/extensions/no-debug-non-zts-20060613/
(這次php_screw.so在這個(gè)目錄下咯)
7.php_screw.so復(fù)制到phpinfo里extension_dir指定的目錄,我的是/var/www/modules下
8.修改php.ini(php安裝目錄下的,phpinfo里會(huì)顯示載入的是哪個(gè)ini,就改那個(gè))
 在最下方添加extension=php_scrw.so
9.重啟apache
10.在phpinfo里看看有木有php_screw相關(guān)信息,有的話就ok了~
至此,安裝結(jié)束了,雖然有點(diǎn)點(diǎn)頭緒,但我還是沒(méi)太搞明白為什么得這樣編譯兩次才行......
PS:編譯過(guò)程中碰見(jiàn)的幾個(gè)問(wèn)題如下(解決方法)
1。 /root/php_screw-1.5/php_screw.c: In function ‘pm9screw_compile_file':
解決方法:
需要修改php_screw.c
把第78,84,93行的org_compile_file(file_handle, type);
修改為:
org_compile_file(file_handle, type TSRMLS_CC);
然后再make就成功了。
2. /opt/soft/php_screw-1.5/php_screw.c: In function ‘zm_startup_php_screw':/opt/soft/php_screw-1.5/php_screw.c:124: 錯(cuò)誤:‘zend_compiler_globals' 沒(méi)有名為 ‘extended_info' 的成員/opt/soft/php_screw-1.5/php_screw.c: In function ‘zm_shutdown_php_screw':/opt/soft/php_screw-1.5/php_screw.c:133: 錯(cuò)誤:‘zend_compiler_globals' 沒(méi)有名為 ‘extended_info' 的成員make: *** [php_screw.lo] 錯(cuò)誤 1
解決方法:
需要修改php_screw.c
把CG(extended_info) = 1;
修改為:
CG(compiler_options) |= ZEND_COMPILE_EXTENDED_INFO;
php_screw如何對(duì)當(dāng)前目錄下,對(duì)目錄下包含的文件,以及包含目錄下的文件進(jìn)行整體加密
find ./ -name "*.php" -print|xargs -n1 screw //加密所有的.php文件
find ./ -name "*.screw" -print/xargs -n1 rm //刪除所有的.php源文件的備份文件
命令都實(shí)驗(yàn)過(guò)成功的.........應(yīng)該沒(méi)什么再補(bǔ)充的咯.....

php技術(shù)php_screw 1.5:php加密: 安裝與使用詳解,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 色迷迷电影 | 亚洲AV无码国产精品午夜久久 | 日韩欧美中文字幕一区 | 久久精品天天中文字幕 | 国产又湿又黄又硬又刺激视频 | 日本色呦呦| 亚洲AV天堂无码麻豆电影 | 毛片无码免费无码播放 | 日本少妇内射视频播放舔 | 午夜神器老司机高清无码 | 99久久国产综合精品网成人影院 | 美女裸露胸部100%无遮挡 | 精品一产品大全 | 我的美女房东未删减版免费观看 | 粗大分开挺进内射 | 99久久精品费精品蜜臀AV | 国产免费啪嗒啪嗒视频看看 | 在线高清无码欧美久章草 | 日本漫画无彩翼漫画 | 精品一区二区三区免费毛片 | 中国老太婆xxxxx | 无码人妻精品国产婷婷 | 1313久久国产午夜精品理论片 | 日本无翼恶漫画大全优优漫画 | 亚洲男人片片在线观看 | 乱h好大噗嗤噗嗤烂了 | AV72啪啪网站| 日韩视频中文字幕精品偷拍 | 一本之道高清视频在线观看 | 国产精品久久高潮呻吟无码 | 啊灬啊灬啊灬快高潮视频 | 日日夜夜天天操 | 精品动漫国产亚洲AV在线观看 | 亚洲香蕉网久久综合影院 | 芭乐草莓樱桃丝瓜18岁大全 | 女神被调教成了精盆 | 野花香在线观看免费观看大全动漫 | 国产第一页浮力影院 | 美女露出逼 | 亚洲精品天堂无码中文字幕影院 | 午夜视频无码国产在线观看 |