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...
Компіляція з ключем шифрування 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"Зверніть увагу, що запропоновані вище команди не зберігають змінні між термінальними сеансами.
Скомпілюйте шаблони експорту Godot та встановіть їх як власні шаблони експорту в параметрах пресетів експорту. Якщо змінну середовища встановлено правильно, на початку компіляції буде виведено таке повідомлення:
*** 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.
Встановіть ключ шифрування на вкладці Шифрування попереднього налаштування експорту:
Додайте фільтри для файлів/папок для шифрування. За замовчуванням, включені фільтри порожні, і нічого не буде зашифровано.
Експортуйте проект. Зараз проект має працювати із зашифрованими файлами.
Вирішення проблем
Якщо ви отримуєте помилку, подібну до наведеної нижче, це означає, що ключ неправильно включено у вашу збірку 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