Heim >Backend-Entwicklung >PHP-Tutorial >Einführung in verschiedene Methoden der PHP-Codeverschlüsselung
So schützen Sie Ihren PHP-Code:
Code-Verschleierung + Verschlüsselung
Die tatsächliche Verschlüsselung wird nicht berücksichtigt, spezifische Implementierungsideen Es besteht darin, den Code mit Base64 zu verschlüsseln, dann eine Zeichenfolgenzuordnung für die Zeichenfolge in Base64 durchzuführen (zufällig eine Wörterbuchverschleierung zu generieren) und dann diese Methode durch eval auszuführen, die geknackt und zu 100 % wiederhergestellt werden kann.
stellt den Code dar folgt:
<?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('写文件错误'); ?>
Verstümmelte Zeichen verschleiern
Code-Verschleierungsvariablen und einige andere Dinge ähneln dem Prinzip von 1, aber die Zeichenfolge wird in ASCII 127 bis 255 geändert. Wenn Nicht-Menschen und Redakteure die Charaktere nicht verstehen können, können die Ergebnisse zu 100 % geknackt und wiederhergestellt werden, es ist nur eine Frage der Zeit.
Opcode verteilen
Verteilen Sie den Code nicht, sondern kompilieren Sie zuerst den PHP-Code und verteilen Sie den Opcode nach PHP7 Sie können diese Methode verwenden, um den Quellcode zu schützen, er wird jedoch auch durch den Opcode dekompiliert und 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 C-Voice, 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.
Verwandte Empfehlungen:
PHP-Video-Tutorial: https://www.php.cn/course/list/29/type/2.html
Das obige ist der detaillierte Inhalt vonEinführung in verschiedene Methoden der PHP-Codeverschlüsselung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!