Heim Backend-Entwicklung PHP-Tutorial 怎样给PHP源代码加密?PHP二进制加密与解密的解决办法_php实例

怎样给PHP源代码加密?PHP二进制加密与解密的解决办法_php实例

Jun 07, 2016 pm 05:24 PM
php加密 php解密

分享2种PHP的源码加密方式,此加密方法支持任意PHP版。

注意,加密后的PHP代码无需第三方工具解密,像往常一样,直接运行即可。

复制代码 代码如下:

 function encode_file_contents($filename) { 
     $type=strtolower(substr(strrchr($filename,'.'),1)); 
     if ('php' == $type && is_file($filename) && is_writable($filename)) { // 如果是PHP文件 并且可写 则进行压缩编码 
         $contents = file_get_contents($filename); // 判断文件是否已经被编码处理 
         $contents = php_strip_whitespace($filename);  

         // 去除PHP头部和尾部标识 
         $headerPos = strpos($contents,'         $footerPos = strrpos($contents,'?>'); 
         $contents = substr($contents, $headerPos + 5, $footerPos - $headerPos); 
         $encode = base64_encode(gzdeflate($contents)); // 开始编码 
         $encode = '";  

         return file_put_contents($filename, $encode); 
     } 
     return false; 
 }  

 //调用函数 
 $filename = 'dam.php'; 
 encode_file_contents($filename); 
 echo "OK,加密完成!"
 ?>

加密方式2:
复制代码 代码如下:


 function RandAbc($length = "") { // 返回随机字符串 
     $str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; 
     return str_shuffle($str); 
 }  

 $filename = 'index.php'; //要加密的文件 
 $T_k1 = RandAbc(); //随机密匙1 
 $T_k2 = RandAbc(); //随机密匙2 
 $vstr = file_get_contents($filename); 
 $v1 = base64_encode($vstr); 
 $c = strtr($v1, $T_k1, $T_k2); //根据密匙替换对应字符。 
 $c = $T_k1.$T_k2.$c; 
 $q1 = "O00O0O"; 
 $q2 = "O0O000"; 
 $q3 = "O0OO00"; 
 $q4 = "OO0O00"; 
 $q5 = "OO0000"; 
 $q6 = "O00OO0"; 
 $s = '$'.$q6.'=urldecode("%6E1%7A%62%2F%6D%615%5C%76%740%6928%2D%70%78%75%71%79%2A6%6C%72%6B%64%679%5F%65%68%63%73%77%6F4%2B%6637%6A");$'.$q1.'=$'.$q6.'{3}.$'.$q6.'{6}.$'.$q6.'{33}.$'.$q6.'{30};$'.$q3.'=$'.$q6.'{33}.$'.$q6.'{10}.$'.$q6.'{24}.$'.$q6.'{10}.$'.$q6.'{24};$'.$q4.'=$'.$q3.'{0}.$'.$q6.'{18}.$'.$q6.'{3}.$'.$q3.'{0}.$'.$q3.'{1}.$'.$q6.'{24};$'.$q5.'=$'.$q6.'{7}.$'.$q6.'{13};$'.$q1.'.=$'.$q6.'{22}.$'.$q6.'{36}.$'.$q6.'{29}.$'.$q6.'{26}.$'.$q6.'{30}.$'.$q6.'{32}.$'.$q6.'{35}.$'.$q6.'{26}.$'.$q6.'{30};eval($'.$q1.'("'.base64_encode('$'.$q2.'="'.$c.'";eval(\'?>\'.$'.$q1.'($'.$q3.'($'.$q4.'($'.$q2.',$'.$q5.'*2),$'.$q4.'($'.$q2.',$'.$q5.',$'.$q5.'),$'.$q4.'($'.$q2.',0,$'.$q5.'))));').'"));'; 

 $s = ''; 
 //echo $s; 
 // 生成 加密后的PHP文件 
 $fpp1 = fopen('temp_'.$filename, 'w'); 
 fwrite($fpp1, $s) or die('写文件错误'); 

 ?>

其实,PHP加密源码方式有很多,譬如,免费的微盾PHP加密,还有 www.phpjm.net 搞的在线加密,只是phpjm更复杂点而已。

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

另外,分享一个 PHP类,它能对 文本的内容进行 二进制加密 与 解密,代码如下:
复制代码 代码如下:


 class text_auth 
 { 
     var $n_iter; 

     function text_auth() 
     { 
         $this->setIter(32); 
     } 

     function setIter($n_iter) 
     { 
         $this->n_iter = $n_iter; 
     } 

     function getIter() 
     { 
         return $this->n_iter; 
     } 

     function encrypt($data, $key) 
     { 
         $n = $this->_resize($data, 4); 

         $data_long[0]   = $n; 
         $n_data_long    = $this->_str2long(1, $data, $data_long); 

         $n = count($data_long); 
         if (($n & 1) == 1) { 
             $data_long[$n] = chr(0); 
             $n_data_long++; 
         } 

         $this->_resize($key, 16, true); 
         if ( '' == $key ) 
             $key = '0000000000000000'; 

         $n_key_long = $this->_str2long(0, $key, $key_long); 

         $enc_data   = ''; 
         $w          = array(0, 0); 
         $j          = 0; 
         $k          = array(0, 0, 0, 0); 
         for ($i = 0; $i              if ($j + 4                  $k[0] = $key_long[$j]; 
                 $k[1] = $key_long[$j + 1]; 
                 $k[2] = $key_long[$j + 2]; 
                 $k[3] = $key_long[$j + 3]; 
             } else { 
                 $k[0] = $key_long[$j % $n_key_long]; 
                 $k[1] = $key_long[($j + 1) % $n_key_long]; 
                 $k[2] = $key_long[($j + 2) % $n_key_long]; 
                 $k[3] = $key_long[($j + 3) % $n_key_long]; 
             } 
             $j = ($j + 4) % $n_key_long; 

             $this->_encipherLong($data_long[$i], $data_long[++$i], $w, $k); 

             $enc_data .= $this->_long2str($w[0]); 
             $enc_data .= $this->_long2str($w[1]); 
         } 

         return $enc_data; 
     } 

     function decrypt($enc_data, $key) 
     { 
         $n_enc_data_long = $this->_str2long(0, $enc_data, $enc_data_long); 

         $this->_resize($key, 16, true); 
         if ( '' == $key ) 
             $key = '0000000000000000'; 

         $n_key_long = $this->_str2long(0, $key, $key_long); 

         $data   = ''; 
         $w      = array(0, 0); 
         $j      = 0; 
         $len    = 0; 
         $k      = array(0, 0, 0, 0); 
         $pos    = 0; 

         for ($i = 0; $i              if ($j + 4                  $k[0] = $key_long[$j]; 
                 $k[1] = $key_long[$j + 1]; 
                 $k[2] = $key_long[$j + 2]; 
                 $k[3] = $key_long[$j + 3]; 
             } else { 
                 $k[0] = $key_long[$j % $n_key_long]; 
                 $k[1] = $key_long[($j + 1) % $n_key_long]; 
                 $k[2] = $key_long[($j + 2) % $n_key_long]; 
                 $k[3] = $key_long[($j + 3) % $n_key_long]; 
             } 
             $j = ($j + 4) % $n_key_long; 

             $this->_decipherLong($enc_data_long[$i], $enc_data_long[$i + 1], $w, $k); 

             if (0 == $i) { 
                 $len = $w[0]; 
                 if (4                      $data .= $this->_long2str($w[1]); 
                 } else { 
                     $data .= substr($this->_long2str($w[1]), 0, $len % 4); 
                 } 
             } else { 
                 $pos = ($i - 1) * 4; 
                 if ($pos + 4                      $data .= $this->_long2str($w[0]); 

                     if ($pos + 8                          $data .= $this->_long2str($w[1]); 
                     } elseif ($pos + 4                          $data .= substr($this->_long2str($w[1]), 0, $len % 4); 
                     } 
                 } else { 
                     $data .= substr($this->_long2str($w[0]), 0, $len % 4); 
                 } 
             } 
         } 
         return $data; 
     } 

     function _encipherLong($y, $z, &$w, &$k) 
     { 
         $sum    = (integer) 0; 
         $delta  = 0x9E3779B9; 
         $n      = (integer) $this->n_iter; 

         while ($n-- > 0) { 
             $y      = $this->_add($y, 
                                   $this->_add($z _rshift($z, 5), $z) ^ 
                                     $this->_add($sum, $k[$sum & 3])); 
             $sum    = $this->_add($sum, $delta); 
             $z      = $this->_add($z, 
                                   $this->_add($y _rshift($y, 5), $y) ^ 
                                     $this->_add($sum, $k[$this->_rshift($sum, 11) & 3])); 
         } 

         $w[0] = $y; 
         $w[1] = $z; 
     } 

     function _decipherLong($y, $z, &$w, &$k) 
     { 
         $sum    = 0xC6EF3720; 
         $delta  = 0x9E3779B9; 
         $n      = (integer) $this->n_iter; 

         while ($n-- > 0) { 
             $z      = $this->_add($z, 
                                   -($this->_add($y _rshift($y, 5), $y) ^ 
                                         $this->_add($sum, $k[$this->_rshift($sum, 11) & 3]))); 
             $sum    = $this->_add($sum, -$delta); 
             $y      = $this->_add($y, 
                                   -($this->_add($z _rshift($z, 5), $z) ^ 
                                         $this->_add($sum, $k[$sum & 3]))); 
         } 

         $w[0] = $y; 
         $w[1] = $z; 
     } 

     function _resize(&$data, $size, $nonull = false) 
     { 
         $n      = strlen($data); 
         $nmod   = $n % $size; 
         if ( 0 == $nmod ) 
             $nmod = $size; 

         if ($nmod > 0) { 
             if ($nonull) { 
                 for ($i = $n; $i                      $data[$i] = $data[$i % $n]; 
                 } 
             } else { 
                 for ($i = $n; $i                      $data[$i] = chr(0); 
                 } 
             } 
         } 
         return $n; 
     } 

     function _hex2bin($str) 
     { 
         $len = strlen($str); 
         return pack('H' . $len, $str); 
     } 

     function _str2long($start, &$data, &$data_long) 
     { 
         $n = strlen($data); 

         $tmp    = unpack('N*', $data); 
         $j      = $start; 

         foreach ($tmp as $value) 
             $data_long[$j++] = $value; 

         return $j; 
     } 

     function _long2str($l) 
     { 
         return pack('N', $l); 
     } 

     function _rshift($integer, $n) 
     { 
         if (0xffffffff $integer) { 
             $integer = fmod($integer, 0xffffffff + 1); 
         } 

         if (0x7fffffff              $integer -= 0xffffffff + 1.0; 
         } elseif (-0x80000000 > $integer) { 
             $integer += 0xffffffff + 1.0; 
         } 

         if (0 > $integer) { 
             $integer &= 0x7fffffff; 
             $integer >>= $n; 
             $integer |= 1          } else { 
             $integer >>= $n; 
         } 

         return $integer; 
     } 

     function _add($i1, $i2) 
     { 
         $result = 0.0; 

         foreach (func_get_args() as $value) { 
             if (0.0 > $value) { 
                 $value -= 1.0 + 0xffffffff; 
             } 

             $result += $value; 
         } 

         if (0xffffffff $result) { 
             $result = fmod($result, 0xffffffff + 1); 
         } 

         if (0x7fffffff              $result -= 0xffffffff + 1.0; 
         } elseif (-0x80000000 > $result) { 
             $result += 0xffffffff + 1.0; 
         } 
         return $result; 
     } 
 } 
 ?>
使用方法参考如下:
// 加密过程
view sourceprint?
 $text_file = S_ROOT . './456.php'; 
 $str = @file_get_contents($text_file); 

 require_once S_ROOT . "./text_auth.php"; 
 $text_auth = new text_auth(64); 

 $str = $text_auth->encrypt($str, "qianyunlai.com"); 

 $filename = S_ROOT . './789.php'; // 加密后的文本为二进制,普通的文本编辑器无法正常查看 
 file_put_contents($filename, $str);
// 解密过程
view sourceprint
?01 $text_file = S_ROOT . './789.php'; 
 $str = @file_get_contents($text_file); 

 require_once S_ROOT . "./text_auth.php"; 
 $text_auth = new text_auth(64); 

 $str = $text_auth->decrypt($str, "qianyunlai.com"); 

 $filename = S_ROOT . './456.php'; 
 file_put_contents($filename, $str);

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHP-Verschlüsselungs- und Entschlüsselungsmethoden und Lösungen für häufige Probleme PHP-Verschlüsselungs- und Entschlüsselungsmethoden und Lösungen für häufige Probleme Jun 09, 2023 pm 01:50 PM

PHP ist eine beliebte serverseitige Programmiersprache, die häufig bei der Entwicklung von Webanwendungen verwendet wird. In praktischen Anwendungen sind PHP-Verschlüsselung und -Entschlüsselung sehr häufige Vorgänge. In diesem Artikel werden gängige Verschlüsselungs- und Entschlüsselungsmethoden in PHP sowie Lösungen für häufige Probleme vorgestellt. 1. Verschlüsselungsmethode 1. Symmetrische Verschlüsselungsmethode (SymmetricCryptography) Die symmetrische Verschlüsselungsmethode ist die am weitesten verbreitete Methode in der Verschlüsselungstechnologie. Diese Methode verwendet denselben Schlüssel zum Verschlüsseln und Entschlüsseln von Daten. In PHP wird häufig die symmetrische Verschlüsselung verwendet

Wie PHP Datenverschlüsselung, -entschlüsselung und -übertragung implementiert, um die Datensicherheit zu gewährleisten Wie PHP Datenverschlüsselung, -entschlüsselung und -übertragung implementiert, um die Datensicherheit zu gewährleisten Jun 27, 2023 am 10:44 AM

Mit der kontinuierlichen Weiterentwicklung der Netzwerktechnologie hat die Datensicherheit immer mehr Aufmerksamkeit auf sich gezogen. Im Informationszeitalter ist PHP als weit verbreitete Programmiersprache auch mit Problemen der Datensicherheit konfrontiert. In diesem Artikel erfahren Sie, wie Sie mit PHP die Datenverschlüsselung, -entschlüsselung und -übertragung implementieren, um die Datensicherheit zu gewährleisten. 1. Datenverschlüsselung Datenverschlüsselung bezieht sich auf eine Technologie, die Originaldaten verarbeitet und sie in eine scheinbar zufällige Folge von Zeichen umwandelt, um die Originaldaten zu schützen. Die Verschlüsselung wird in Einwegverschlüsselung und symmetrische Verschlüsselung unterteilt. Einwegverschlüsselung bedeutet, dass nur Verschlüsselungsvorgänge durchgeführt werden können

Methoden und Techniken zur Datenverschlüsselung und -entschlüsselung mithilfe von PHP-Arrays Methoden und Techniken zur Datenverschlüsselung und -entschlüsselung mithilfe von PHP-Arrays Jul 16, 2023 pm 04:02 PM

Methoden und Techniken zur Datenverschlüsselung und -entschlüsselung mithilfe von PHP-Arrays Zusammenfassung: Datenverschlüsselung spielt eine wichtige Rolle in der Informationssicherheit. In diesem Artikel werden Methoden und Techniken zur Verwendung von PHP-Arrays zur Implementierung der Datenverschlüsselung und -entschlüsselung vorgestellt, um die Sicherheit vertraulicher Informationen zu schützen. Einleitung In der modernen Gesellschaft haben Fragen der Netzwerksicherheit zunehmend Aufmerksamkeit erregt. Um die Sicherheit sensibler Informationen zu schützen, ist die Datenverschlüsselung eine gängige Methode. PHP-Array ist eine leistungsstarke und flexible Datenstruktur, die zum Speichern und Bearbeiten von Daten verwendet werden kann. Durch die Speicherung sensibler Daten im PHP-Array

So nutzen Sie die PHP-Verschlüsselungstechnologie, um den Registrierungsprozess zu schützen und Registrierungsbetrug zu verhindern So nutzen Sie die PHP-Verschlüsselungstechnologie, um den Registrierungsprozess zu schützen und Registrierungsbetrug zu verhindern Aug 19, 2023 pm 12:05 PM

So nutzen Sie die PHP-Verschlüsselungstechnologie, um den Registrierungsprozess zu schützen und Registrierungsbetrug zu verhindern. Im heutigen Internetzeitalter ist das Registrierungssystem zu einer Grundfunktion jeder Website geworden. Aufgrund der Offenheit und des freien Zugangs des Internets verwenden einige Kriminelle jedoch häufig automatisierte Skripte, um böswillige Registrierungen durchzuführen, was zu Problemen beim normalen Betrieb der Website führt. Daher ist der Schutz des Registrierungsprozesses und die Verhinderung von Registrierungsbetrug zu einer sehr wichtigen Aufgabe geworden. Um den Registrierungsprozess zu schützen und Registrierungsbetrug zu verhindern, können wir die PHP-Verschlüsselungstechnologie verwenden, um die Sicherheit des Registrierungssystems zu erhöhen. Runter

Verschlüsselungs- und Entschlüsselungstechnologie und Lösungen für häufige Probleme in PHP Verschlüsselungs- und Entschlüsselungstechnologie und Lösungen für häufige Probleme in PHP Jun 09, 2023 pm 12:36 PM

Mit der Popularisierung der Netzwerktechnologie sind Fragen der Netzwerksicherheit zu einem Thema mit zunehmender Besorgnis geworden, und auch die Ver- und Entschlüsselungstechnologie hat große Aufmerksamkeit erregt. Bei der PHP-Programmierung ist die Verschlüsselungs- und Entschlüsselungstechnologie ein sehr wichtiger Bestandteil. Sie kann uns helfen, die Sicherheit von Daten zu gewährleisten und Datendiebstahl und böswillige Angriffe zu verhindern. In diesem Artikel werden häufig verwendete Verschlüsselungs- und Entschlüsselungsalgorithmen und -lösungen in PHP vorgestellt. 1. Die Rolle der Verschlüsselungs- und Entschlüsselungstechnologie Im Netzwerk stößt die Datenübertragung häufig auf viele unsichere Situationen, z. B. wenn Daten von Kriminellen abgefangen, manipuliert und gestohlen werden.

Verschlüsselung und Entschlüsselung in PHP Verschlüsselung und Entschlüsselung in PHP May 26, 2023 pm 12:51 PM

In der Webentwicklung war Sicherheit schon immer eines der wichtigsten Themen. Risiken wie Schlüsselverlust, Datenmanipulation und Diebstahl sind immer vorhanden, daher ist der Schutz der Datensicherheit besonders wichtig. Um die Datensicherheit zu gewährleisten, nutzen wir bei der Datenverarbeitung in der Regel eine Ver- und Entschlüsselung. In PHP sind Verschlüsselung und Entschlüsselung ebenfalls sehr wichtige Bestandteile. 1. Verschlüsselungsmethoden in PHP In PHP gibt es viele Verschlüsselungsmethoden. Im Folgenden stellen wir einige häufig verwendete Verschlüsselungsmethoden vor. MD5-Verschlüsselung MD5 ist eine häufig verwendete Verschlüsselungsmethode. Es

PHP-Entwicklungsfähigkeiten: So implementieren Sie Datenverschlüsselungs- und -entschlüsselungsfunktionen PHP-Entwicklungsfähigkeiten: So implementieren Sie Datenverschlüsselungs- und -entschlüsselungsfunktionen Sep 21, 2023 am 08:51 AM

PHP-Entwicklungstipps: So implementieren Sie Datenverschlüsselungs- und -entschlüsselungsfunktionen In modernen Webanwendungen ist Datensicherheit ein sehr wichtiges Thema. Wenn sensible Daten der Benutzer übertragen oder gespeichert werden müssen, müssen wir sie normalerweise verschlüsseln, um die Sicherheit der Daten zu gewährleisten. In der PHP-Entwicklung werden verschiedene Verschlüsselungsmethoden und -technologien bereitgestellt. In diesem Artikel wird erläutert, wie PHP zur Implementierung von Datenverschlüsselungs- und -entschlüsselungsfunktionen verwendet wird, und es werden spezifische Codebeispiele bereitgestellt. 1. Symmetrische Verschlüsselung und Entschlüsselung Die symmetrische Verschlüsselung ist eine Methode, die denselben Schlüssel für die Verschlüsselung und Entschlüsselung verwendet. im PH

Analyse der Verschlüsselungs- und Entschlüsselungstechnologie von sicherheitsrelevanten PHP-Daten Analyse der Verschlüsselungs- und Entschlüsselungstechnologie von sicherheitsrelevanten PHP-Daten Jun 30, 2023 pm 02:01 PM

Analyse der Verschlüsselungs- und Entschlüsselungstechnologie sicherheitsrelevanter Daten in PHP Mit der Entwicklung des Internets ist die Datensicherheit zu einem wichtigen Thema geworden. Für Website-Entwickler ist es besonders wichtig, die sensiblen Daten der Nutzer zu schützen. In PHP können wir verschiedene Verschlüsselungs- und Entschlüsselungstechnologien verwenden, um sensible Daten zu schützen. Dieser Artikel bietet eine detaillierte Analyse der Verschlüsselungs- und Entschlüsselungstechnologien für sicherheitsrelevante Daten in PHP. 1. Grundprinzipien der Verschlüsselung Bei der Verschlüsselung wird Klartext in Chiffriertext umgewandelt. Nur die Person, die über den Schlüssel verfügt, kann den Chiffriertext entschlüsseln und in Klartext wiederherstellen. In PHP gängige Verschlüsselungsmethoden

See all articles