Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
Compilazione con chiave di crittografia PCK
La finestra di dialogo di esportazione offre la possibilità di crittografare il file PCK con una chiave AES a 256 bit quando si rilascia il progetto. Ciò garantirà che scene, script e altre risorse non siano archiviati in testo semplice e non si possano facilmente copiare da qualche script kiddie.
Naturalmente, la chiave deve essere memorizzata nel binario, ma se è compilata, ottimizzata e senza simboli, ci vorrebbe un certo sforzo per trovarla.
Affinché questo funzioni, è necessario creare i modelli di esportazione dalla sorgente, con la stessa chiave.
Avvertimento
Questo non funzionerà se si utilizzano modelli di esportazione ufficiali precompilati. È assolutamente necessario compilare i propri modelli di esportazione per utilizzare la crittografia PCK.
Passo dopo passo
Generare una chiave AES a 256 bit in formato esadecimale. È possibile utilizzare la variante aes-256-cbc da questo servizio.
In alternativa, si può generare manualmente attraverso gli strumenti da riga di comando OpenSSL:
openssl rand -hex 32 > godot.gdkey
L'output in
godot.gdkeydovrebbe essere simile a:# NOTE: Do not use the key below! Generate your own key instead. aeb1bc56aaf580cc31784e9c41551e9ed976ecba10d315db591e749f3f64890fÈ possibile generare la chiave senza reindirizzare l'output a un file, ma in questo modo si riduce al minimo il rischio di esporre la chiave.
Impostare questa chiave come variabile d'ambiente nella console che sarà utilizzata per compilare Godot, in questo modo:
export SCRIPT_AES256_ENCRYPTION_KEY="your_generated_key"
set SCRIPT_AES256_ENCRYPTION_KEY=your_generated_key
$env:SCRIPT_AES256_ENCRYPTION_KEY="your_generated_key"Si noti che i comandi suggeriti sopra non mantengono le variabili tra una sessione di terminale e l'altra.
Compilare i modelli di esportazione Godot e impostarli come modelli di esportazione personalizzati nelle opzioni della preimpostazione di esportazione. Se la variabile d'ambiente è impostata correttamente, all'inizio della compilazione apparirà il seguente messaggio:
*** IMPORTANT: Compiling Godot with custom `SCRIPT_AES256_ENCRYPTION_KEY` set as environment variable. *** Make sure to use templates compiled with this key when exporting a project with encryption.
Imposta la chiave di crittografia nella scheda Crittografia della preimpostazione di esportazione:
Aggiungi filtri per i file o cartelle da crittografare. Come predefinito, i filtri di inclusione sono vuoti e nulla verrà crittografato.
Esportare il progetto. Il progetto dovrebbe ora essere eseguito con i file crittografati.
Risoluzione dei problemi
Se si verifica un errore come quello seguente, significa che la chiave non è stata inclusa correttamente nella build di Godot. Godot sta crittografando il file PCK durante l'esportazione, ma non riesce a leggerlo durante l'esecuzione.
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