PHP-Beast 加密你的PHP源代碼
每日推薦
推薦一個源碼加密PHP-Beast 加密你的PHP源代碼,正在做該方面的或者有興趣的可以看下。
1
前言
首先說說為什麼要用PHP-Beast?
有時候我們的代碼會放到代理商上, 所以很有可能代碼被盜取,或者我們寫了一個商業系統而且不希望代碼開源,所以這時候就需要加密我們的代碼。
另外PHP-Beast是完全免費和開源的, 當其不能完成滿足你的需求時, 可以修改其代碼而滿足你的要。
下面說說我在封裝SDK與使用的時候遇到的那些事,希望對大家有些幫助吧!
2
編譯安裝如下
注意:如果你需要使用,首先修改key。可以參考下文
Linux編譯安裝:
編譯好之後修改php.ini配置文件, 加入配置項: extension=beast.so, 重啟php-fpm 。
配置項:
beast.log_level支持參數:
支持的模塊有:
通過測試環境:
3
怎麼加密你的項目
加密方案1:
安裝完 php-beast 後可以使用 tools 目錄下的 encode_files.php 來加密你的項目。使用 encode_files.php 之前先修改 tools 目錄下的 configure.ini 文件,如下:
src_path 是要加密項目的路徑,dst_path 是保存加密後項目的路徑,expire 是設置項目可使用的時間 (expire 的格式是:YYYY-mm-dd HH:ii:ss)。encrypt_type是加密的方式,選擇項有:DES、AES、BASE64。修改完 configure.ini 文件後就可以使用命令 php encode_files.php 開始加密項目。
加密方案2:
使用beast_encode_file()函數加密文件,函數原型如下:
beast_encode_file(string $input_file, string $output_file, int expire_timestamp, int encrypt_type)。
4
制定自己的php-beast
php-beast 有多個地方可以定製的,以下一一列出:
1. 使用 header.c 文件可以修改 php-beast 加密後的文件頭結構,這樣網上的解密軟體就不能認識我們的加密文件,就不能進行解密,增加加密的安全性。
2. php-beast 提供只能在指定的機器上運行的功能。要使用此功能可以在 networkcards.c 文件添加能夠運行機器的網卡號,例如:
這樣設置之後,php-beast 擴展就只能在 fa:16:3e:08:88:01 這台機器上運行。另外要注意的是,由於有些機器網卡名可能不一樣,所以如果你的網卡名不是 eth0 的話,可以在 php.ini 中添加配置項: beast.networkcard = "xxx" 其中 xxx 就是你的網卡名,也可以配置多張網卡,如:beast.networkcard = "eth0,eth1,eth2"。
3. 使用 php-beast 時最好不要使用默認的加密key,因為擴展是開源的,如果使用默認加密key的話,很容易被人發現。所以最好編譯的時候修改加密的key,aes模塊 可以在 aes_algo_handler.c 文件修改,而 des模塊 可以在 des_algo_handler.c 文件修改。
5
函數列表 & Debug
開啟debug模式:
可以在configure時加入 --enable-beast-debug 選項來開啟debug模式。開啟debug模式後需要在php.ini配置文件中加入配置項:beast.debug_path 和 beast.debug_mode。beast.debug_mode 用於指定是否使用debug模式,而 beast.debug_path 用於輸出解密後的php腳本源碼。這樣就可以在 beast.debug_path 目錄中看到php-beast解密後的源代碼,可以方便知道擴展解密是否正確。
函數列表:
1. beast_encode_file(): 用於加密一個文件
2. beast_avail_cache(): 獲取可以緩存大小
3. beast_support_filesize(): 獲取beast支持的最大可加密文件大小
4. beast_file_expire(): 獲取一個文件的過期時間
5. beast_clean_cache(): 清空beast的所有緩存(如果有文件更新, 可以使用此函數清空緩存)
6
修改默認加密的key
1,修改加密後的文件頭結構:
打開header.c文件,找到以下代碼:
自定義修改以下代碼(其中的數字的範圍為:,字母的範圍為:):
2,修改aes模塊加密key:
打開php-beast-master/aes_algo_handler.c文件,找到以下代碼:
自定義修改以下代碼(其中的數字的範圍為:,字母的範圍為:):
3,修改des模塊加密key:
打開php-beast-master/des_algo_handler.c文件,找到以下代碼:
自定義修改以下代碼(其中的數字的範圍為:,字母的範圍為:):
4,修改base64模塊加密key:
打開php-beast-master/base64_algo_handler.c文件,自定義修改以下代碼:
7
php-beast自定義加密模塊
一,首先創建一個.c的文件。例如我們要編寫一個使用base64加密的模塊,可以創建一個名叫base64_algo_handler.c的文件。然後在文件添加如下代碼:
模塊必須實現3個方法,分別是:encrypt、decrypt、free方法。
二,寫好我們的加密模塊後,需要在global_algo_modules.c添加我們模塊的信息。代碼如下:
三,修改config.m4文件,修改倒數第二行,如下代碼:
加粗的代碼是我們添加的,這裡加入的是我們模塊的文件名。
現在大功告成了,可以編譯試下。如果要使用我們剛編寫的加密演算法來加密php文件,可以修改php.ini文件的配置項,如下:
名字就是我們模塊的name。
·THE END·
【極客小寨】:關注、交流、分享
關於Geekxz的那些事兒
更多分享,請持續關注「極客小寨」
很多未公開的、隱藏的功能,用心去發現,驚喜總是會有的!
極客小寨:專註技術乾貨分享
圍觀
邏輯層分析 應用程序邏輯app.js
丨更多
熱文
微信小程序開發必備必看常用的Flex布局模式-wxflex
丨更多
熱文
HP程序員進階學習書籍參考指南
丨更多
熱文
AI人才需求翻倍,技術崗漲幅最多
丨更多


TAG:全球大搜羅 |