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