Maison  >  Article  >  développement back-end  >  Comment empêcher le piratage du code source PHP

Comment empêcher le piratage du code source PHP

(*-*)浩
(*-*)浩original
2019-10-15 13:34:244486parcourir

Protégez votre propre code PHP, chiffrez-le :

Comment empêcher le piratage du code source PHP

Obfuscation du code + chiffrement

Le cryptage réel ne compte pas. L'idée spécifique de l'implémentation est de crypter le code en base64, puis d'effectuer un mappage de chaîne sur la chaîne en base64 (générer aléatoirement un obscurcissement du dictionnaire), puis d'évaluer l'exécution, qui peut être craquée et restaurée à 100 % ( apprentissage recommandé : Tutoriel vidéo PHP)

représente le code 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;); 

 ?>

Distribuer l'opcode

Ne distribuez pas de code, mais précompilez d'abord le code PHP et distribuez l'opcode. Après PHP7, opcache est profondément intégré à cette chose. Après PHP7, vous pouvez utiliser cette méthode pour protéger le code source, 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é.

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