中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php源碼如何加密

發布時間:2020-09-17 10:52:52 來源:億速云 閱讀:118 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關php源碼如何加密,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

php源碼怎么加密?

php源碼加密的方法:

一、無需任何PHP擴展的加密

此類加密的代表有 威盾PHP加密專家、PHP在線加密平臺、PHP神盾 等。

此類加密都是以eval函數為核心,輔以各式各樣的字符串混淆和各種小技巧,來達到加密目的(更準確的說,應該算是混淆)。下面以一個簡單的hello world為例來說明此類加密的大體過程。

<?php
  echo "hello world";

首先,我們把這段代碼變為通過eval執行的

<?php
  eval('echo "hello world";');

然后,我們再進行一些轉換,比如說base64編碼

<?php 
  eval(base64_decode('ZWNobyAiaGVsbG8gd29ybGQiOw=='));

就這樣子,我們的第一個加密過的php代碼新鮮出爐了。。。

上面這個例子非常非常簡單,基本上任何有一點php語言基礎甚至別的語言基礎的人都能輕松的看懂并解密。因此,我們需要一些方法讓這個加密至少看上去不是那么簡單。

二、同時采用多種編碼函數

除了剛才提到的base64,php還有許多內置的編碼函數,例如urlencode、gzcompress等。把這些函數混合使用可以提高解密的復雜度(不是難度),此外還可以使用strtr來制定自己的編碼規則。 使用變量來代替函數名 使用特定字符來命名變量

這兒所說的特定字符是一些極其相似的字符,如I和1,0和O。試想一下滿屏都是O和0組成的變量,并且每一個的名字長度都在10個字符以上。。。 判斷文件自身是否被修改

這個功能看似容易,對文件做一下摘要再進行下對比即可知道是否被修改了,但是如何才能在文件內把摘要嵌入進去呢?我沒有找到完美的方案,但一個變通的方案還是很容易的。。。

<?php
$code = substr(file_get_contents(__FILE__), 0, -32);
$hash = substr(file_get_contents(__FILE__), -32);
if(md5($code) !== $hash) {
  exit('file edited');
}
ACBC41F727E00F85BEB3440D751BB4E3

當然,你可以把這個校驗字符串放在別的位置來提高破解的難度。有了這個,別人想破解你的程序可就得多費一點功夫了。。。

既然知道了原理,那解密自然也就非常簡單了,總體來說就三步:

把eval替換為輸出,比如echo 根據編碼規則把字符串還原 如果文件未解密完全,從第一步開始繼續

當然,實際上的解密過程并沒有這么簡單,比如說如果加密的時候使用了gzcompress,那得到的數據將會包含一些二進制數據,而采用一般的文本編輯器打開時這些數據都會顯示為亂碼,并且在保存時丟失部分數據。解決方法很簡單也很麻煩,那就是使用二進制(16進制)方式打開、修改和保存。

關于php源碼如何加密就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

日照市| 天台县| 高陵县| 济阳县| 兴文县| 东方市| 辽阳市| 福州市| 留坝县| 道孚县| 甘孜县| 徐汇区| 芦山县| 仙居县| 白银市| 白玉县| 榆社县| 惠东县| 泽库县| 小金县| 宝鸡市| 隆子县| 通渭县| 诏安县| 漾濞| 翼城县| 富裕县| 茂名市| 建始县| 年辖:市辖区| 毕节市| 连平县| 大连市| 瓦房店市| 体育| 凤庆县| 周口市| 新巴尔虎左旗| 海门市| 略阳县| 淄博市|