Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

Kompilieren mit PCK-Verschlüsselungscode

Der Exportdialog bietet Ihnen die Möglichkeit, Ihre PCK-Datei mit einem 256-Bit-AES-Schlüssel zu verschlüsseln, wenn Sie Ihr Projekt releasen. Dadurch wird sichergestellt, dass Ihre Szenen, Skripte und anderen Ressourcen nicht im Klartext gespeichert werden und nicht einfach von einem Skript-Kiddie entwendet werden können.

Natürlich muss der Schlüssel in der Binärdatei gespeichert sein, aber wenn sie kompiliert und optimiert ist und keine Symbole enthält, wäre es sehr mühsam, ihn zu finden.

Damit dies funktioniert, müssen Sie die Exportvorlagen aus der Quelle mit demselben Schlüssel erstellen.

Warnung

Dies wird nicht funktionieren, wenn Sie offizielle, vorkompilierte Exportvorlagen verwenden. Es ist absolut erforderlich, dass Sie Ihre eigenen Exportvorlagen kompilieren, um die PCK-Verschlüsselung zu verwenden.

Warnung

Standardmäßig werden Assets bei Android-Exporten direkt in der APK-Datei gespeichert und sind von der PCK-Verschlüsselung nicht betroffen. Um PCK-Verschlüsselung unter Android zu verwenden, aktivieren Sie APK-Erweiterung in den Exportoptionen.

Schritt für Schritt

  1. Erzeugen Sie einen 256-Bit-AES-Schlüssel im Hexadezimalformat. Sie können die Variante aes-256-cbc von diesem Dienst verwenden.

    Alternativ können Sie ihn auch selbst mit Hilfe der Kommandozeilen-Tools von OpenSSL erzeugen:

    openssl rand -hex 32 > godot.gdkey
    

    Die Ausgabe in godot.gdkey sollte in etwa so aussehen:

    # NOTE: Do not use the key below! Generate your own key instead.
    aeb1bc56aaf580cc31784e9c41551e9ed976ecba10d315db591e749f3f64890f
    

    Sie können den Schlüssel generieren, ohne die Ausgabe in eine Datei umzuleiten, aber auf diese Weise können Sie das Risiko minimieren, den Schlüssel preiszugeben.

  2. Setzen Sie diesen Schlüssel als Umgebungsvariable in der Konsole, die Sie zum Kompilieren von Godot verwenden werden, etwa so:

    export SCRIPT_AES256_ENCRYPTION_KEY="your_generated_key"
    
  3. Kompilieren Sie Godot-Exportvorlagen und legen Sie sie als benutzerdefinierte Exportvorlagen in den Export-Vorgabeoptionen fest.

  4. Legen Sie den Verschlüsselungsschlüssel im Tab Verschlüsselung der Exportvorgabe fest:

    ../../../_images/encryption_key.png
  5. Fügen Sie Filter für die zu verschlüsselnden Dateien/Ordner hinzu. Standardmäßig sind Include-Filter leer und nichts wird verschlüsselt.

  6. Exportieren Sie das Projekt. Das Projekt sollte jetzt mit verschlüsselten Dateien laufen.

Fehlersuche

Wenn Sie eine Fehlermeldung wie unten erhalten, bedeutet dies, dass der Schlüssel nicht ordnungsgemäß in Ihren Godot-Build aufgenommen wurde. Godot verschlüsselt die PCK-Datei während des Exports, kann sie aber zur Laufzeit nicht lesen.

ERROR: open_and_parse: Condition "String::md5(md5.digest) != String::md5(md5d)" is true. Returning: ERR_FILE_CORRUPT
   At: core/io/file_access_encrypted.cpp:103