Maison  >  Article  >  développement back-end  >  Comment protéger le code source en php

Comment protéger le code source en php

王林
王林original
2019-10-15 13:14:455881parcourir

Comment protéger le code source en php

Obfuscation du code + cryptage

Le cryptage réel ne compte pas. base64 le code Chiffrez, puis effectuez un mappage de chaîne sur la chaîne en base64 (obscurcissement du dictionnaire généré aléatoirement)

Le code représentatif est le suivant :

<?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;); 

 ?>

Caractères de code tronqués confus

Les variables d'obscurcissement du code et quelques autres choses sont similaires au principe de 1, mais la chaîne est remplacée par des caractères non humains entre ascii 127 et 255 et des caractères que le L'éditeur ne peut pas comprendre. Le résultat est de 100 %. Ce n'est qu'une question de temps avant qu'il puisse être craqué et restauré.

Distribuer l'opcode

Ne distribuez pas le code, mais précompilez d'abord le code PHP et distribuez l'opcode Après PHP7, opcache intègre profondément cette chose. peut utiliser cette méthode pour le protéger, mais il sera également décompilé par l'opcode et sera cracké.

Obfusquer + crypter + écrire l'extension PHP

Obscurcir + crypter + écrire l'extension PHP, mais tant qu'il s'agit d'une extension PHP open source, elle sera crackée à moins que vous écrivez vous-même l'algorithme de cryptage. Cryptez le code PHP, puis utilisez la voix C pour écrire vous-même une extension à source fermée. D'autres ne connaissent pas vos idées de cryptage et de piratage, donc la possibilité d'être piraté est très faible.

Compilateur Swoole

Celui produit par swoole consiste à prendre l'opcode généré puis à obscurcir le cryptage. Alors c'est génial si vous voulez l'exécuter. Il est évident que le moteur zend est impossible de reconnaître l'opcode obscurci et crypté, il doit donc en fait réécrire zend, donc le moteur zend pris en charge doit également être modifié.

Tutoriel recommandé : Tutoriel vidéo PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn