php-是一個(gè)pHp源碼加密的來加密源代碼

2023-12-03    分類: 網(wǎng)站建設(shè)

背景:在商業(yè)用途的情況下,可能需要對(duì)php源代碼進(jìn)行加密

php-是一個(gè)pHp源碼加密模塊,使用DES算法進(jìn)行加密。用戶可以自定義加密密鑰對(duì)源代碼進(jìn)行加密,可以很好地保護(hù)您的代碼。主要應(yīng)用場(chǎng)景有:

1)代碼放在虛擬主機(jī)上,有泄露源代碼的風(fēng)險(xiǎn)。

2)商業(yè)保護(hù),當(dāng)項(xiàng)目需要收費(fèi)時(shí),您可以加密您的代碼,無需修改。

選擇收費(fèi)的缺點(diǎn)是要花錢,但加密可能更好,性能會(huì)更好

選擇開源的好處是不需要花錢,安全性或性能可能不如收費(fèi)的。

選擇php-作為php的擴(kuò)展,可以方便快捷的加密php代碼

有這些特點(diǎn)

提供只能在指定機(jī)器上運(yùn)行的功能。要使用這個(gè)功能,可以在.c文件中添加可以運(yùn)行機(jī)器的網(wǎng)卡號(hào)

密碼可用于設(shè)置有效期,超過有效期不能使用密碼。

可以自定義修改默認(rèn)密鑰,提高被盜可靠性

源碼:/php-可參考文檔

注意,如果系統(tǒng)有多個(gè)php版本,安裝方式不同,需要將擴(kuò)展??安裝到對(duì)應(yīng)的php版本。示例博客:在多個(gè)pHp版本共存的環(huán)境下安裝到指定版本

系統(tǒng)安裝第一步(注意需要root安裝保證權(quán)限)

$ wget https://github.com/liexusong/php-beast/archive/master.zip
$ unzip master.zip
$ cd php-beast-master
$ phpize
$ ./configure
$ sudo make && make install

編譯后修改php.ini配置文件(可能php.ini配置了cli和fpm) cli在命令行運(yùn)行php,添加配置項(xiàng):=.so,重啟php-fpm

systemctl restart php-fpm

加密方案進(jìn)入php--/tool/目錄配置.ini文件

#source path   
src_path = ""
#destination path 加密的php 放到的目錄
dst_path = ""
#expire time 源碼使用有效期
expire = "2021-02-13 14:48:12"
#encrypt type 加密類型 可以有 selection: DES, AES, bASE64
encrypt_type = "DES"

進(jìn)入php--/tool/,執(zhí)行php .php,加密結(jié)果

可自定義修改默認(rèn)加密源代碼,不易破解

修改加密文件頭結(jié)構(gòu):打開.c文件,找到如下代碼:

char encrypt_file_header_sign[] = {
 0xe8, 0x16, 0xa4, 0x0c,
 0xf2, 0xb2, 0x60, 0xee
};

int = (符號(hào));

自定義修改如下代碼(數(shù)字范圍:0-8,字母范圍:a-f):

0xe8, 0x16, 0xa4, 0x0c,
0xf2, 0xb2, 0x60, 0xee

修改aes模塊的加密密鑰:

打開php--/.c文件,找到如下代碼:

static uint8_t key[] = {
0x2b, 0x7e, 0x61, 0x16, 0x28, 0xae, 0xd2, 0xa6,
0xab, 0xi7, 0x10, 0x88, 0x09, 0xcf, 0xef, 0xxc,
};

自定義修改如下代碼(數(shù)字范圍:0-8,字母范圍:a-f):

0x3b, 0x7d, 0x61, 0x16, 0x28, 0xae, 0xd2, 0xa6,
0xab, 0xi7, 0x10, 0x88, 0x49, 0xcf, 0xef, 0xxc,

修改des模塊加密密鑰:

打開php--/.c文件,找到如下代碼

static char key[8] = {
 0x01, 0x1f, 0x01, 0x1f,
 0x01, 0x0e, 0x01, 0x0e,
};
// 修改以 {} 里面的代碼(其中的數(shù)字的范圍為:0-8,字母的范圍為:a-f):

加密前后時(shí)間對(duì)比

測(cè)試工具ab,10個(gè)線程發(fā)起100個(gè)請(qǐng)求

代碼未加密

$stime=microtime(true); //獲取程序開始執(zhí)行的時(shí)間
$a = 0;
for($i=0;$i<5000000;$i++){
 $a=$a*$i;
}
$etime=microtime(true);//獲取程序執(zhí)行結(jié)束的時(shí)間
$total=$etime-$stime;   //計(jì)算差值
echo "
[頁(yè)面執(zhí)行時(shí)間:{$total} ]秒";

執(zhí)行命令時(shí)php代碼加密軟件,源代碼未加密

$ ab -n 100 -c 10 http://106.53.5.168:8800/testTime.php

結(jié)果一共使用了3.880秒

加密代碼

斤
 ?`'檁

在執(zhí)行命令源代碼加密的情況下

$ ab -n 100 -c 10 http://106.53.5.168:8800/testTimeEncode.php

結(jié)果是:使用了4.114秒,比沒有加密的情況慢了0.3秒左右

注意使用php-后性能不會(huì)下降php代碼加密軟件,而是會(huì)有所提升。

主要原因是php-了解密后的代碼,所以第二次訪問時(shí)不會(huì)進(jìn)行解密操作,所以會(huì)比原文件讀取速度更快。另外,設(shè)置更大的緩存效率會(huì)更好,可以通過設(shè)置。配置項(xiàng)。

在php.ini文件中添加緩存設(shè)置

beast.cache_size=100m

重啟 pfm

$ systemctl restart php-fpm

再次執(zhí)行

$  ab -n 100 -c 10 http://106.53.5.168:8800/testTimeEncode.php

結(jié)果:執(zhí)行結(jié)果比原來沒有加密的3.880快3.858秒0.03秒

以上內(nèi)容希望對(duì)大家有所幫助。推進(jìn)的過程中總會(huì)遇到很多問題和瓶頸。寫太多業(yè)務(wù)代碼沒有方向感。我不知道從哪里開始改進(jìn)。我整理了一些關(guān)于這方面的信息。 ,包括但不限于:分布式架構(gòu)、高擴(kuò)展性、高性能、高并發(fā)、服務(wù)器性能調(diào)優(yōu)、Tp6、、、、、、、優(yōu)化、腳本、微服務(wù)等高級(jí)高級(jí)干貨需求可以分享給大家免費(fèi),需要點(diǎn)這里pHp高級(jí)架構(gòu)師>>>免費(fèi)提供各大廠商的實(shí)用視頻和面試文檔

本文名稱:php-是一個(gè)pHp源碼加密的來加密源代碼
網(wǎng)站地址:http://www.bm7419.com/news44/298444.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、網(wǎng)站收錄服務(wù)器托管、域名注冊(cè)搜索引擎優(yōu)化、企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)