Maison > développement back-end > tutoriel php > Explication détaillée de la méthode de cryptage du code source PHP

Explication détaillée de la méthode de cryptage du code source PHP

王林
Libérer: 2023-04-07 11:44:02
avant
5765 Les gens l'ont consulté

Explication détaillée de la méthode de cryptage du code source PHP

Bien que PHP soit le meilleur langage au monde, il existe également quelques problèmes de sécurité dus à des langages faiblement typés. Il y a eu quelques problèmes de sécurité dans l’histoire de WordPress causés par des failles dans PHP lui-même. Par exemple, la falsification de cookies dans CVE-2014-0166 a profité des failles de la comparaison PHP Hash.

Ce qui suit est une introduction à une technologie de cryptage de code source :

Logiciel de cryptage (php_screw)

Adresse de téléchargement : http://sourceforge.net/projects/php-screw/

Description : les fichiers PHP sont généralement stockés au format texte côté serveur, et il est facile pour les autres de lire le code source. Afin de vérifier la source Pour protéger le code, vous pouvez utiliser la méthode de cryptage du code source. Pour réaliser cette fonction, vous avez besoin de deux parties

L'une est : un programme de cryptage pour réaliser le cryptage de. Fichiers PHP

L'autre est : Le fichier PHP crypté est analysé pour obtenir les résultats d'exécution. La mise en œuvre du premier est relativement simple, il s'agit simplement d'un programme. La mise en œuvre du second est principalement implémentée sous la forme. du module php.

php_screw (vis) peut réaliser les fonctions ci-dessus. La dernière version est la 1.5, qui peut être téléchargée depuis sourceforge

php_screw est un programme de cryptage PHP développé par des japonais, mais. uniquement Peut fonctionner sous LINUX

Installation

Description : Le but de l'installation est en fait de générer deux fichiers, l'un est une vis pour crypter les fichiers PHP, et le other One

est le module d'analyse php_screw.so chargé par php

Environnement d'installation

Système : centos 5.3

Logiciel : Apache 2.2.9

PHP 5.2.10

Tous les environnements ci-dessus sont téléchargés, configurés et installés par vous-même. Veuillez rechercher sur Internet les méthodes d'installation spécifiques d'Apache+php+mysql.

Étapes d'installation

1. Décompressez avec tar tar -zxvf php_screw-1.5.tar.gz

2. Entrez dans le répertoire php_screw-1.5. start Install

cd php_screw-1.5
phpize
Copier après la connexion

Concernant phpize, il suffit d'installer le module php5-dev dans le module d'extension php5-dev.

./confiugre

3. Définissez le mot de passe que vous utilisez pour le cryptage

Copiez le code comme suit :

vi my_screw.h
 -- Please change the encryption SEED key (pm9screw_mycryptkey) into the
    values according to what you like.
    The encryption will be harder to break, if you add more values to the
    encryption SEED array. However, the size of the SEED is unrelated to
    the time of the decrypt processing.
 *  If you can read and understand the source code, to modify an original
        encryption logic will be possible. But in general, this should not
        be necessary.
   OPTIONAL: Encrypted scripts get a stamp added to the beginning of the
        file. If you like, you may change this stamp defined by
        PM9SCREW and PM9SCREW_LEN in php_screw.h. PM9SCREW_LEN must
        be less than or equal to the size of PM9SCREW.
Copier après la connexion

Compilez

make
Copier après la connexion

5. Copiez le fichier php_screw.so du répertoire modules dans le répertoire /usr/lib/php5/extension

cp modules/php_screw.so /usr/lib/php5/extension/
Copier après la connexion

6. Modifiez le fichier php.ini

dans le php. .ini, ajoutez l'instruction suivante

extension=php_screw.so
Copier après la connexion

7. Redémarrez Apache

/srv/apache/bin/apachectl restart
Copier après la connexion

8 Compilez l'outil de chiffrement

cd tools
make
Copier après la connexion

9. dans le répertoire approprié

cp screw /usr/bin/
Copier après la connexion

Après les 10 étapes ci-dessus, php_screw-1.5 a été complètement installé. Et maintenant, PHP prend également en charge l'interprétation des fichiers PHP cryptés

Utiliser

1. Écrivez maintenant un fichier PHP à crypter.

J'ai écrit le fichier test.php suivant pour tester la vitesse de php

Copiez le code comme suit :

<?
$a=0;
$t=time();
for($i=0;$i<5000000;$i++)
  {$a=$a*$i;}
$t1=time();
echo "<p>";
echo "It used:";
echo $t1-$t;
echo "seconds";
?>
Copier après la connexion

Mettez le fichier test.php ci-dessus dans /var/ www/répertoire. L'accès via le navigateur affichera la vitesse de PHP dans les calculs à grande échelle (estimation approximative)

2 Cryptez le fichier PHP que nous avons écrit

cd /var/www/
screw test.php
Copier après la connexion

Après l'avoir chiffré, le test dans le répertoire. est maintenant Le fichier .php est ce que nous avons chiffré. Le fichier source a été renommé test.php.screw et stocké.

Testons test.php maintenant pour voir s'il peut être utilisé normalement ? Comment est la vitesse ?

Je l'ai comparé et j'ai découvert que la vitesse avant et après le cryptage est à peu près la même et qu'il n'y a fondamentalement pas beaucoup de perte.

3. Fichiers chiffrés par lots

Après avoir testé sur Debian, Apache2, php5 pour chiffrer le fichier .html, il peut être analysé correctement ;

Comment php_screw dans le courant répertoire , crypte les fichiers contenus dans le répertoire et les fichiers du répertoire contenant dans son ensemble

find ./ -name "*.php"-print|xargs -n1 screw //加密所有的.php文件
find ./ -name "*.screw" -print/xargs -n1 rm //删除所有的.php源文件的备份文件
Copier après la connexion

De cette façon, tous les fichiers .php du répertoire courant sont cryptés.

Pour plus de questions connexes, veuillez visiter le site Web php chinois : 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!

Étiquettes associées:
source:cnblogs.com
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal