Heim >Backend-Entwicklung >PHP-Problem >So verhindern Sie, dass PHP-Quellcode geknackt wird
Schützen Sie Ihren eigenen PHP-Code, verschlüsseln Sie ihn:
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 = '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 = '<?php '."\n".$s."\n".' ?>'; //echo $s; // 生成 加密后的PHP文件 $fpp1 = fopen('temp_'.$filename, 'w'); fwrite($fpp1, $s) or die('写文件错误'); ?>
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!