php解密最新動態,php解密網站程序源碼

本文目錄一覽:

PHP文件如何解密

所謂的PHP文件加密,一般有兩種方式,一是ZEND編譯,二是BASE64等編碼,理論上都不是加密,下面分別說說如何還原。

對於ZEND編譯過的代碼,用記事本打開是完全是亂碼,除了前面的很小的頭部,後面不是可見ASCII字元,有點像打開一個EXE文件的效果,是無法閱讀的。這類處理的文件一般認為是無法還原的,網上有DEZEND工具,你可以下載來試試看,能還原早期ZEND版本編譯後的代碼。

對於使用BASE64等編碼後的PHP文件,可以用記事本打開查看,所有字元都是可見ASCII字元,一般使用兩種方法加大閱讀難度:一是使用$ll111、$ooo000這樣的變數,字母L的小寫與1混在一起、字母O的小寫與數字0混在一起,不容易分辨變數名稱。二是使用BASE64編碼對原始代碼進行轉換,最後使用eval進行處理。往往兩種方式結合在一起。

第二種方式處理後的代碼是很容易還原的,方法就是把eval換為exit,在CLI(命令提示符)下執行就會顯示出eval那個語句對應的等效代碼,替換原始語句即可。有時候還原一次後還是eval語句,那需要按照同樣的方法反覆處理。

有個PHP的動態加解密函數代碼,求大神幫忙寫一個對接這個PHP動態加解密的加解密的源碼謝謝、

?php

/**

 * 加密函數

 * @param  string  $string    明文 或 密文  

 * @param  string  $operation DECODE表示解密,其它表示加密  

 * @param  string  $key       密匙  

 * @param  integer $expiry    密文有效期

 */

function authcode($string, $operation = ‘DECODE’, $key = ”, $expiry = 0) {  

    $ckey_length = 4;  

    $key = md5($key);   

    $keya = md5(substr($key, 0, 16));    

    $keyb = md5(substr($key, 16, 16));   

    $keyc = $ckey_length ? ($operation == ‘DECODE’ ? substr($string, 0, $ckey_length): substr(md5(microtime()), -$ckey_length)) : ”;  

    $cryptkey = $keya.md5($keya.$keyc);  

    $key_length = strlen($cryptkey);  

    $string = $operation == ‘DECODE’ ? base64_decode(substr($string, $ckey_length)) : sprintf(‘%010d’, $expiry ? $expiry + time() : 0).substr(md5($string.$keyb), 0, 16).$string;  

    $string_length = strlen($string);  

    $result = ”;  

    $box = range(0, 255);  

    $rndkey = array();

    for($i = 0; $i = 255; $i++) {  

        $rndkey[$i] = ord($cryptkey[$i % $key_length]);  

    }

    for($j = $i = 0; $i  256; $i++) {  

        $j = ($j + $box[$i] + $rndkey[$i]) % 256;  

        $tmp = $box[$i];  

        $box[$i] = $box[$j];  

        $box[$j] = $tmp;  

    }  

    for($a = $j = $i = 0; $i  $string_length; $i++) {  

        $a = ($a + 1) % 256;  

        $j = ($j + $box[$a]) % 256;  

        $tmp = $box[$a];  

        $box[$a] = $box[$j];  

        $box[$j] = $tmp;   

        $result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256]));  

    }  

    if($operation == ‘DECODE’) {  

        if((substr($result, 0, 10) == 0 || substr($result, 0, 10) – time()  0)  substr($result, 10, 16) == substr(md5(substr($result, 26).$keyb), 0, 16)) {  

            return substr($result, 26);  

        } else {  

            return ”;  

        }  

    }else {

        return $keyc.str_replace(‘=’, ”, base64_encode($result));  

    }  

}

?

我們公司常用的加密 解密函數

望採納Thx

php文件解密

PHP所有的加密都是紙老虎,把eval換為exit,然後在控制台(或者DOS下)運行一下就能看見那個eval語句解密後的代碼,用來替換eval語句既可。例如你的程序中,第一個eval替換為exit後,執行輸出的代碼如下:

$OO0OO0000=$OOO000000{17}.$OOO000000{12}.$OOO000000{18}.$OOO000000{5}.$OOO000000{19};if(!0)$O000O0O00=$OO0OO0000($OOO0O0O00,’rb’);$OO0OO000O=$OOO000000{17}.$OOO000000{20}.$OOO000000{5}.$OOO000000{9}.$OOO000000{16};$OO0OO00O0=$OOO000000{14}.$OOO000000{0}.$OOO000000{20}.$OOO000000{0}.$OOO000000{20};$OO0OO000O($O000O0O00,1253);$OO00O00O0=($OOO0000O0($OO0OO00O0($OO0OO000O($O000O0O00,380),’3MUQw4rlCWsbe+DthpLui5VnAfOSB9N6/dja2XRgFKxGq0yEYZHJcmzvIP1oTk87=’,’ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/’)));eval($OO00O00O0);

用這一段替換源文件中的eval那一個語句,替換後的內容如下:

?php // This file is protected by copyright law provided under license. Copyright(C) 2009 , All rights reserved.

$OOO0O0O00=__FILE__;$OOO000000=urldecode(‘%74%68%36%73%62%65%68%71%6c%61%34%63%6f%5f%73%61%64%66%70%6e%72′);$OO00O0000=9504;$OOO0000O0=$OOO000000{4}.$OOO000000{9}.$OOO000000{3}.$OOO000000{5};$OOO0000O0.=$OOO000000{2}.$OOO000000{10}.$OOO000000{13}.$OOO000000{16};$OOO0000O0.=$OOO0000O0{3}.$OOO000000{11}.$OOO000000{12}.$OOO0000O0{7}.$OOO000000{5};$O0O0000O0=’OOO0000O0′;$OO0OO0000=$OOO000000{17}.$OOO000000{12}.$OOO000000{18}.$OOO000000{5}.$OOO000000{19};if(!0)$O000O0O00=$OO0OO0000($OOO0O0O00,’rb’);$OO0OO000O=$OOO000000{17}.$OOO000000{20}.$OOO000000{5}.$OOO000000{9}.$OOO000000{16};$OO0OO00O0=$OOO000000{14}.$OOO000000{0}.$OOO000000{20}.$OOO000000{0}.$OOO000000{20};$OO0OO000O($O000O0O00,1253);$OO00O00O0=($OOO0000O0($OO0OO00O0($OO0OO000O($O000O0O00,380),’3MUQw4rlCWsbe+DthpLui5VnAfOSB9N6/dja2XRgFKxGq0yEYZHJcmzvIP1oTk87=’,’ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/’)));exit($OO00O00O0);return;?

以上就是PHP解密的原理,但是這個文件到這裡已經無法自動解密下去了,因為原文件被破壞了,我們可以看echo $OO0OO00O0等變數,發現現在的語句是實際上是讀取文件中後面的內容,進行替換,然後再次執行,現在需要調整裡面的380,到原文件380位元組後的合適地方。

php通過base64實現動態url加密和解密的過程

BASE64不算加密,不要學微軟,沒有實際價值、浪費系統資源。

在客戶端是無法使用PHP的,PHP只能在伺服器上運行,在客戶端可以考慮使用JAVASCRIPT進行BASE64編碼,網上有許多這樣的例子,比如:

在伺服器端可以使用PHP識別BASE64編碼,使用函數base64decode即可。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/236254.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 11:59
下一篇 2024-12-12 11:59

相關推薦

  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智慧、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • Python爬蟲可以爬哪些網站

    Python是被廣泛運用於數據處理和分析領域的編程語言之一。它具有易用性、靈活性和成本效益高等特點,因此越來越多的人開始使用它進行網站爬取。本文將從多個方面詳細闡述,Python爬…

    編程 2025-04-29
  • Python程序文件的拓展

    Python是一門功能豐富、易於學習、可讀性高的編程語言。Python程序文件通常以.py為文件拓展名,被廣泛應用於各種領域,包括Web開發、機器學習、科學計算等。為了更好地發揮P…

    編程 2025-04-29
  • Python購物車程序

    Python購物車程序是一款基於Python編程語言開發的程序,可以實現購物車的相關功能,包括商品的添加、購買、刪除、統計等。 一、添加商品 添加商品是購物車程序的基礎功能之一,用…

    編程 2025-04-29
  • 雲智直聘 源碼分析

    本文將會對雲智直聘的源碼進行分析,包括前端頁面和後端代碼,幫助讀者了解其架構、技術實現以及對一些常見的問題進行解決。通過本文的閱讀,讀者將會了解到雲智直聘的特點、優勢以及不足之處,…

    編程 2025-04-29
  • 爬蟲是一種程序

    爬蟲是一種程序,用於自動獲取互聯網上的信息。本文將從如下多個方面對爬蟲的意義、運行方式、應用場景和技術要點等進行詳細的闡述。 一、爬蟲的意義 1、獲取信息:爬蟲可以自動獲取互聯網上…

    編程 2025-04-29
  • 網站為什麼會被黑客攻擊?

    黑客攻擊是指利用計算機技術手段,入侵或者破壞計算機信息系統的一種行為。網站被黑客攻擊是常見的安全隱患之一,那麼,為什麼網站會被黑客攻擊呢?本文將從不同角度分析這個問題,並且提出相應…

    編程 2025-04-29
  • Vb運行程序的三種方法

    VB是一種非常實用的編程工具,它可以被用於開發各種不同的應用程序,從簡單的計算器到更複雜的商業軟體。在VB中,有許多不同的方法可以運行程序,包括編譯器、發布程序以及命令行。在本文中…

    編程 2025-04-29
  • Python一元二次方程求解程序

    本文將詳細闡述Python一元二次方程求解程序的相關知識,為讀者提供全面的程序設計思路和操作方法。 一、方程求解 首先,我們需要了解一元二次方程的求解方法。一元二次方程可以寫作: …

    編程 2025-04-29

發表回復

登錄後才能評論