Компиляция с ключом шифрования PCK
В диалоговом окне экспорта вы можете зашифровать PCK-файл 256-битным ключом AES при выпуске проекта. Это гарантирует, что ваши сцены, скрипты и другие ресурсы не будут храниться в виде обычного текста и не будут легко скопированы каким-нибудь хакером.
Конечно, ключ необходимо сохранить в двоичном файле, но если он скомпилирован, оптимизирован и не содержит символов, то его поиск потребует некоторых усилий.
Чтобы это работало, вам нужно создать шаблоны экспорта из источника, с тем же ключом.
Предупреждение
Это не сработает, если вы используете официальные, предварительно скомпилированные шаблоны экспорта. Для использования шифрования PCK абсолютно необходимо скомпилировать собственные шаблоны экспорта.
Шаг за шагом
Сгенерируйте 256-битный ключ AES в шестнадцатеричном формате. Вы можете использовать вариант aes-256-cbc из этой службы.
Кроме того, вы можете сгенерировать его самостоятельно, используя OpenSSL инструменты командной строки:
openssl rand -hex 32 > godot.gdkey
Вывод в
godot.gdkeyдолжен быть похож на:# NOTE: Do not use the key below! Generate your own key instead. aeb1bc56aaf580cc31784e9c41551e9ed976ecba10d315db591e749f3f64890fВы можете сгенерировать ключ, не перенаправляя вывод в файл, но таким образом вы сведете к минимуму риск раскрытия ключа.
Установите этот ключ как переменную среды в консоли, которую вы будете использовать для компиляции Godot, например так:
export SCRIPT_AES256_ENCRYPTION_KEY="your_generated_key"
set SCRIPT_AES256_ENCRYPTION_KEY=your_generated_key
$env:SCRIPT_AES256_ENCRYPTION_KEY="your_generated_key"Note that the commands suggested above do not persist the variables across terminal sessions.
Compile Godot export templates and set them as custom export templates in the export preset options. If the environment variable is set correctly, the following message is printed at the beginning of compilation:
*** 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.
Установите ключ шифрования на вкладке Encryption предустановки экспорта:
Добавьте фильтры для файлов/папок, которые нужно зашифровать. По умолчанию фильтры включения пусты и ничего не будет зашифровано.
Экспортируйте проект. Теперь проект должен запуститься с зашифрованными файлами.
Устранение неполадок
Если вы получили ошибку, подобную приведённой ниже, это означает, что ключ не был корректно включён в вашу сборку Godot. Godot шифрует файл PCK во время экспорта, но не может прочитать его во время выполнения.
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