Maison > Article > développement back-end > Introduction à plusieurs méthodes de cryptage de code PHP
Comment protéger votre code PHP :
Obfuscation du code + cryptage
Le cryptage réel n'est pas pris en compte, des idées d'implémentation spécifiques Il s'agit de chiffrer 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 eval exécute cette méthode, qui peut être craquée et restaurée à 100 %
représente le code comme suit :
<?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('写文件错误'); ?>
Obscurcir les caractères tronqués
Les variables d'obscurcissement du code et d'autres choses sont similaires au principe de 1, mais la chaîne est modifiée en ascii 127 à 255, que les non-humains et les éditeurs ne peuvent pas comprendre les personnages, les résultats peuvent être craqués et restaurés à 100 %, ce n'est qu'une question de temps.
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 qui le prend en charge doit également être modifié.
Recommandations associées :
Tutoriel vidéo PHP : https://www.php.cn/course/list/29/type/2.html
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!