php代碼如何實現(xiàn)代碼保護(PHP代碼保護方法?)
PHP代碼保護方法?比如你要把phpMyAdmin這個MySQL圖形化管理工具打包到你的應(yīng)用中,你只需把PHP解釋器和phpMyAdmin項目打包在一起就行.因為PHP從5.4開始就內(nèi)置了一個HTTP

PHP代碼保護方法?
比如你要把phpMyAdmin這個MySQL圖形化管理工具打包到你的應(yīng)用中,你只需把PHP解釋器和phpMyAdmin項目打包在一起就行.因為PHP從5.4開始就內(nèi)置了一個HTTP服務(wù)器,只需這樣就可以運行phpMyAdmin程序:
然后你的Electron去訪問這個本地的PHP服務(wù)器就行.
我打包到Android上配合WebView跑的PHP7解釋器,APK大小才5個MB,所以不用擔(dān)心體積太大.
如果你需要保護你的PHP項目的代碼,可以用PHP7的_cache導(dǎo)出腳本的opcode,可用于實現(xiàn)源代碼保護:
上有個叫 tonyenc 的項目,提供了一個so的c語言源碼,你可以修改源碼中的密碼設(shè)定,然后編譯成.so文件,把這個so作為php擴展安裝上。再使用它提供的一個php程序?qū)椖窟M行加密,源碼就被加密了,只有安裝了這個擴展的機器才能運行,而且無法解密。
php7代碼如何加密?
我們先寫出函數(shù):
lt?php
function encode_file_contents($filename) {
$type=strtolower(substr(strrchr($filename,'.'),1))
if ('php' == $type ampamp is_file($filename) ampamp is_writable($filename)) { //
如果是PHP文件 并且可寫 則進行壓縮編碼
$contents = file_get_contents($filename) // 判斷文件是否已經(jīng)被編碼處
理
$contents = php_strip_whitespace($filename)
// 去除PHP頭部和尾部標(biāo)識
$headerPos = strpos($contents,'lt?php')
$footerPos = strrpos($contents,'?gt')
$contents = substr($contents, $headerPos 5, $footerPos -
$headerPos)
$encode = base64_encode(gzdeflate($contents)) // 開始編碼
$encode = 'lt?php'.