Die vier Schutzstufen im Detail

Jede Stufe baut auf der vorherigen auf. Wähle nach Bedarf — höhere Stufen erzeugen größere Dateien und sind aufwändiger rückzubauen, aber niemals echte Verschlüsselung.

Stufe 1 — Basic

Die schnellste und am einfachsten reversible Stufe. Geeignet als erste Hürde gegen flüchtige Blicke in den Code.

Was passiert

Vorher

<?php
// Login prüfen
function checkLogin($user, $pass) {
  return $user === 'admin';
}

Nachher

<?php
function checkLogin($_a1,$_a2){return $_a1==='admin';}

Stufe 2 — Medium

Der gesamte Code wird komprimiert, base64-codiert und zur Laufzeit per eval() ausgeführt. Beim Öffnen sieht man nur einen Decoder.

Was passiert

Nachher (Auszug)

<?php
$_0xa1b2c3='eJxLy8svykktUtA3MtA0sLPQNDAyAACFlAQq';
$_0xd4e5f6="base"."64_de"."code";
$_0x789012="gz"."inflate";
eval($_0x789012($_0xd4e5f6($_0xa1b2c3)));

Stufe 3 — Advanced

Mehrfach geschachtelte Encoder, hex-codierte Funktionsnamen und Decoy-Code, der nie ausgeführt wird.

Was passiert

Nachher (Auszug)

<?php
if(0){$_a4f3e1="\x70\x68\x70\x76\x65\x72\x73\x69\x6f\x6e";}
$_0xb7c2d9='aGVsbG8gd29ybGQ=';
$_0x33ab1f="\x62\x61\x73\x65\x36\x34\x5f\x64\x65\x63\x6f\x64\x65";
$_0x9e8d44="\x73\x74\x72\x5f\x72\x6f\x74\x31\x33";
eval($_0x9e8d44($_0x33ab1f($_0x33ab1f($_0xb7c2d9))));

Stufe 4 — Pro

Die maximale Hürde: XOR-Verschlüsselung mit zufälligem Schlüssel, der Payload in Chunks aufgeteilt, Funktionsnamen zur Laufzeit aus chr()-Konstruktionen zusammengebaut.

Was passiert

Wichtig: Auch Stufe 4 ist keine echte Verschlüsselung. Der XOR-Schlüssel steht im selben Skript. Mit etwas Zeit ist auch das reversibel. Es ist Verschleierung, kein Schutz vor entschlossenem Reverse-Engineering.

Wann welche Stufe?

Du willst Lizenzlogik kaschieren

Stufe 3 oder 4. Verhindert, dass jemand schnell mal die Schlüsselprüfung umschreibt.

Du gibst Code an Kunden weiter

Stufe 2 oder 3. Reicht, damit der Quellcode nicht trivial geklaut oder verändert wird.

Du willst nur API-Keys verstecken

Stufe 1 reicht nicht. Nimm mindestens Stufe 3 — oder besser: Keys in .env-Datei auslagern.

Du willst kleine Skript-Größe

Stufe 1. Alle höheren Stufen vergrößern die Datei deutlich (200–400 %).