開始之前,首先要澄清兩個問題:第一,支持開源,不等于反對代碼加密;第二,如果把不屬于自己的東西(比如公司的)拿去開源,就更加不應該了。
以前知道的,PHP代碼的加密都是用Zend的encoder,這東西不但是商業軟件,好像還暴出過能夠被破解的問題,所以就找到了替代的方案────php_screw,一個日本人開發的東東。
php_screw非常小巧,沒有仔細看過它的算法,但從說明文檔中看,可以自行更改SEED,然后自行編譯so和可執行檔。如果夠牛的話,甚至可以自己去更改算法。不管怎樣,對于我們這些“普通人”來說,這種加密應該就夠了吧,如果真想滴水不漏,那還是不要公開的好,雖然作者說的并不是很容易就破解,但指不定哪兒有牛群呢不是么?
安裝的環境需要:PHP5.x,zlib開啟,autoconf,automake已安裝。
測試環境:Ubuntu 8.04 hardy, PHP 5.2.3。
下載地址:
1、 解壓,更改my_screw.h,里面的幾個數字就是SEED,相當于密碼,可以隨意更改、增加,并且數字的多少不影響解密的速度。
2、編譯so文件:
復制代碼 代碼如下:
$ phpize
$ ./configure
$ make
復制代碼 代碼如下:
$ make
make: *** No targets specified and no makefile found. Stop.
復制代碼 代碼如下:
extension = php_screw.so
復制代碼 代碼如下:
$ cd tools
$ make
復制代碼 代碼如下:
$ screw a.php
Success Crypting(a.php)
Update @ 2008-09-01
加密之后,還有個小問題,用require或include引用放在include_path下的加密代碼時,會當做明文引過來,解決方法有兩種:
使用絕對路徑引用放在include_path下的加密內容,如果是自己的主機,肯定沒問題的;
使用相對路徑來引用,比如在本項目的子目錄內,這樣也是沒問題的。
新聞熱點
疑難解答