Heim >Backend-Entwicklung >PHP-Problem >So verhindern Sie, dass PHP-Quellcode geknackt wird

So verhindern Sie, dass PHP-Quellcode geknackt wird

(*-*)浩
(*-*)浩Original
2019-10-15 13:34:244564Durchsuche

Schützen Sie Ihren eigenen PHP-Code, verschlüsseln Sie ihn:

So verhindern Sie, dass PHP-Quellcode geknackt wird

Code-Verschleierung + Verschlüsselung

Die eigentliche Verschlüsselung zählt nicht. Die spezifische Implementierungsidee besteht darin, den Code mit Base64 zu verschlüsseln und dann eine Zeichenfolgenzuordnung für die Zeichenfolge in Base64 durchzuführen (zufällige Wörterbuchverschleierung zu generieren) und dann eine Auswertung durchzuführen, die zu 100 % geknackt und wiederhergestellt werden kann ( Empfohlenes Lernen: PHP-Video-Tutorial)

stellt den Code wie folgt dar:

<?php

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

 $filename = &#39;index.php&#39;; //要加密的文件 
 $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 = &#39;$&#39;.$q6.&#39;=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");$&#39;.$q1.&#39;=$&#39;.$q6.&#39;{3}.$&#39;.$q6.&#39;{6}.$&#39;.$q6.&#39;{33}.$&#39;.$q6.&#39;{30};$&#39;.$q3.&#39;=$&#39;.$q6.&#39;{33}.$&#39;.$q6.&#39;{10}.$&#39;.$q6.&#39;{24}.$&#39;.$q6.&#39;{10}.$&#39;.$q6.&#39;{24};$&#39;.$q4.&#39;=$&#39;.$q3.&#39;{0}.$&#39;.$q6.&#39;{18}.$&#39;.$q6.&#39;{3}.$&#39;.$q3.&#39;{0}.$&#39;.$q3.&#39;{1}.$&#39;.$q6.&#39;{24};$&#39;.$q5.&#39;=$&#39;.$q6.&#39;{7}.$&#39;.$q6.&#39;{13};$&#39;.$q1.&#39;.=$&#39;.$q6.&#39;{22}.$&#39;.$q6.&#39;{36}.$&#39;.$q6.&#39;{29}.$&#39;.$q6.&#39;{26}.$&#39;.$q6.&#39;{30}.$&#39;.$q6.&#39;{32}.$&#39;.$q6.&#39;{35}.$&#39;.$q6.&#39;{26}.$&#39;.$q6.&#39;{30};eval($&#39;.$q1.&#39;("&#39;.base64_encode(&#39;$&#39;.$q2.&#39;="&#39;.$c.&#39;";eval(\&#39;?>\&#39;.$&#39;.$q1.&#39;($&#39;.$q3.&#39;($&#39;.$q4.&#39;($&#39;.$q2.&#39;,$&#39;.$q5.&#39;*2),$&#39;.$q4.&#39;($&#39;.$q2.&#39;,$&#39;.$q5.&#39;,$&#39;.$q5.&#39;),$&#39;.$q4.&#39;($&#39;.$q2.&#39;,0,$&#39;.$q5.&#39;))));&#39;).&#39;"));&#39;; 

 $s = &#39;<?php &#39;."\n".$s."\n".&#39; ?>&#39;; 
 //echo $s; 
 // 生成 加密后的PHP文件 
 $fpp1 = fopen(&#39;temp_&#39;.$filename, &#39;w&#39;); 
 fwrite($fpp1, $s) or die(&#39;写文件错误&#39;); 

 ?>

Opcode verteilen

Verteilen Sie keinen Code, sondern kompilieren Sie zuerst den PHP-Code und verteilen Sie den Opcode. Nach PHP7 ist Opcache tief in dieses Ding integriert. Nach PHP7 können Sie diese Methode verwenden, um den Quellcode zu schützen, aber er wird auch wieder dekompiliert durch den Opcode und wird geknackt.

PHP-Erweiterung verschleiern + verschlüsseln + schreiben

PHP-Erweiterung verschleiern + verschlüsseln + schreiben, aber solange es sich um eine Open-Source-PHP-Erweiterung handelt, wird sie geknackt, es sei denn Sie schreiben den Verschlüsselungsalgorithmus selbst und verwenden dann die C-Stimme, um selbst eine Closed-Source-Erweiterung zu schreiben. Andere kennen Ihre Verschlüsselungs- und Cracking-Ideen nicht, daher ist die Wahrscheinlichkeit, geknackt zu werden, sehr gering.

Swoole Compiler

Der von Swoole erstellte Opcode besteht darin, die Verschlüsselung zu verschleiern. Wenn Sie dies ausführen möchten, ist dies der Fall Es ist offensichtlich, dass die Zend-Engine den verschleierten und verschlüsselten Opcode nicht erkennen kann. Daher muss Zend tatsächlich neu geschrieben werden, sodass auch die unterstützende Zend-Engine geändert werden muss.

Das obige ist der detaillierte Inhalt vonSo verhindern Sie, dass PHP-Quellcode geknackt wird. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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