Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung der PHP-Quellcode-Verschlüsselungsmethode

Detaillierte Erläuterung der PHP-Quellcode-Verschlüsselungsmethode

王林
王林nach vorne
2019-09-06 10:13:345746Durchsuche

Detaillierte Erläuterung der PHP-Quellcode-Verschlüsselungsmethode

Obwohl PHP die beste Sprache der Welt ist, gibt es aufgrund schwach typisierter Sprachen auch einige Sicherheitsprobleme. In der Geschichte von WordPress gab es einige Sicherheitsprobleme, die durch Fehler in PHP selbst verursacht wurden. Beispielsweise nutzte die Cookie-Fälschung in CVE-2014-0166 die Fehler im PHP-Hash-Vergleich aus.

Das Folgende ist eine Einführung in eine Quellcode-Verschlüsselungstechnologie:

Verschlüsselungssoftware (php_screw)

Download-Adresse: http://sourceforge.net/projects/php-screw/

Beschreibung: PHP-Dateien werden normalerweise im Textformat auf der Serverseite gespeichert und sind für andere leicht lesbar Quellcode. Um die Quelle zu überprüfen. Um den Code zu schützen, können Sie die Methode der Verschlüsselung des Quellcodes verwenden. Um diese Funktion zu realisieren, benötigen Sie zwei Teile: Verschlüsselungsprogramm zur Realisierung der Verschlüsselung PHP-Dateien

Das andere ist: Die Implementierung der verschlüsselten PHP-Datei ist relativ einfach, die Implementierung des Letzteren erfolgt größtenteils in Form des PHP-Moduls.

(Schraube) kann die oben genannten Funktionen erreichen. Die neueste Version ist 1.5, die von SourceForge heruntergeladen werden kann.

php_screw

ist ein von Japaner entwickeltes PHP-Verschlüsselungsprogramm es kann nur unter LINUX laufen

php_screw

Installation


Beschreibung: Der Zweck der Installation besteht eigentlich darin, zwei Dateien zu generieren, eine ist eine Schraube zum Verschlüsseln von PHP-Dateien und das andere

ist das Parsing-Modul php_screw.so, das von PHP geladen wird

Installationsumgebung

System: Centos 5.3

Software : Apache 2.2.9

PHP 5.2.10

Alle oben genannten Umgebungen werden von Ihnen selbst heruntergeladen, konfiguriert und installiert. Bitte suchen Sie im Internet nach bestimmten Apache+php+mysql-Installationsmethoden.

Installationsschritte

1. Dekomprimieren Sie mit tar tar -zxvf php_screw-1.5.tar.gz

2. Geben Sie das Verzeichnis php_screw-1.5 ein start Install

cd php_screw-1.5
phpize

In Bezug auf phpize muss nur das php5-dev-Modul im php5-dev-Erweiterungsmodul installiert werden.

./configure

3. Legen Sie das Passwort fest, das Sie für die Verschlüsselung verwenden

Kopieren Sie den Code wie folgt:

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.

4. Kompilieren

make

5. Kopieren Sie die Datei php_screw.so im Verzeichnis „modules“ in das Verzeichnis /usr/lib/php5/extension

cp modules/php_screw.so /usr/lib/php5/extension/

6. Bearbeiten Sie die Datei php.ini

im Verzeichnis php .ini-Datei, fügen Sie die folgende Anweisung hinzu

extension=php_screw.so

7. Starten Sie Apache neu

/srv/apache/bin/apachectl restart

9. Kopieren Sie die Verschlüsselungstool-Schraube in das Tools-Verzeichnis in das entsprechende Verzeichnis

cd tools
make

Nach den oben genannten 10 Schritten wurde php_screw-1.5 vollständig installiert. Und jetzt unterstützt PHP auch die Interpretation verschlüsselter PHP-Dateien

Verwenden Sie

1. Schreiben Sie nun eine zu verschlüsselnde PHP-Datei. Ich habe die folgende test.php-Datei geschrieben, um die Geschwindigkeit von PHP zu testen

Kopieren Sie den Code wie folgt:

cp screw /usr/bin/

Fügen Sie die obige test.php-Datei in /var/ ein. www/-Verzeichnis. Der Zugriff über den Browser zeigt die Geschwindigkeit von PHP in umfangreichen Berechnungen (grobe Schätzung)

2. Verschlüsseln Sie die von uns geschriebene PHP-Datei

<?
$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";
?>

Nachdem wir sie verschlüsselt haben, wird der Test im Verzeichnis durchgeführt ist jetzt die .php-Datei, die wir verschlüsselt haben. Die Quelldatei wurde in test.php.screw umbenannt und gespeichert.

Testen wir jetzt test.php, um zu sehen, ob es normal verwendet werden kann? Wie ist die Geschwindigkeit?

Ich habe es verglichen und festgestellt, dass die Geschwindigkeit vor und nach der Verschlüsselung ungefähr gleich ist und es im Grunde nicht viel Verlust gibt.

3. Stapelverschlüsselte Dateien

Nachdem die .html-Datei auf Debian, Apache2 und PHP5 getestet wurde, kann sie korrekt analysiert werden.

Wie funktioniert php_screw im aktuellen Verzeichnis, verschlüsseln Sie die im Verzeichnis enthaltenen Dateien und die Dateien im enthaltenden Verzeichnis als Ganzes

cd /var/www/
screw test.php

Auf diese Weise werden alle .php-Dateien im aktuellen Verzeichnis verschlüsselt.

Weitere verwandte Fragen finden Sie auf der chinesischen PHP-Website:

PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der PHP-Quellcode-Verschlüsselungsmethode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen