Компіляція з ключем шифрування PCK

Діалогове вікно експорту дає вам можливість зашифрувати файл PCK за допомогою 256-бітного ключа AES під час випуску вашого проекту. Це гарантує, що ваші сцени, сценарії та інші ресурси не зберігаються у звичайному тексті та не можуть бути легко зірвані якимось сценаристом.

Звичайно, ключ потрібно зберігати у двійковому файлі, але якщо він скомпільований, оптимізований і без символів, знадобляться певні зусилля, щоб його знайти.

Щоб це працювало, вам потрібно створити шаблони експорту з джерела з тим самим ключем.

Попередження

Це не працюватиме, якщо ви використовуєте офіційні попередньо скомпільовані шаблони експорту. Абсолютно обов’язково скомпілювати власні шаблони експорту, щоб використовувати шифрування PCK.

Попередження

За замовчуванням експортовані файли Android зберігають ресурси безпосередньо у файлі APK і на них не впливає шифрування PCK. Щоб використовувати шифрування PCK на Android, увімкніть Розширення APK у параметрах експорту.

Крок-за-кроком

  1. Створіть 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
    

    Ви можете згенерувати ключ, не перенаправляючи вивід у файл, але таким чином ви можете мінімізувати ризик розкриття ключа.

  2. Встановіть цей ключ як змінну середовища в консолі, яку ви використовуватимете для компіляції Godot, ось так:

    export SCRIPT_AES256_ENCRYPTION_KEY="your_generated_key"
    
  3. Скомпілюйте шаблони експорту Godot і встановіть їх як власні шаблони експорту в попередньо встановлених параметрах експорту.

  4. Встановіть ключ шифрування на вкладці Шифрування попереднього налаштування експорту:

    ../../../_images/encryption_key.png
  5. Додайте фільтри для файлів/папок для шифрування. За замовчуванням, включені фільтри порожні, і нічого не буде зашифровано.

  6. Експортуйте проект. Зараз проект має працювати із зашифрованими файлами.

Вирішення проблем

Якщо ви отримуєте помилку, подібну до наведеної нижче, це означає, що ключ неправильно включено у вашу збірку 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