У мене виникла така ідея використання шифрування, щоб запобігти користувачам з'ясовувати вміст у моїй програмі поза межами самої програми. Як і користувачі, можуть знайти текстури, які ніколи не використовувались у грі, що означало би бути частиною якогось писанка під час перегляду даних гри. Це може, наприклад, зіпсувати його для всіх, якщо вони розміщені в Інтернеті.
Уявіть собі таємну кімнату, де гравцеві належить натиснути правильні цифри на захисних дверях у грі, які в разі правильності повинні створити правильний ключ розшифровки, а потім розшифрувати цю частину рівня та відкрити двері. Таким чином, писанка робить інакше недоступною навіть при перегляді ігрових даних, оскільки ключ насправді не зберігається, він створюється на основі введення користувача.
Ось ще один приклад того, що я уявляв. У мене гра-головоломка, скажімо, 20 рівнів, кожен із яких шифрується за допомогою іншого ключа. Замість того, щоб зберігати ключ дешифрування разом із програмою, що дозволить комусь декомпілювати програму та знайти її, я замість цього генерую ключ шифрування / дешифрування на основі рішення попередньої головоломки. Таким чином гравцеві доведеться насправді розгадувати головоломку, перш ніж отримати будь-яку інформацію про наступний рівень, навіть при перегляді даних гри.
Гравець, якби обізнаний, міг би зробити це грубою силою, зважаючи на те, що кількість головоломкових рішень, мабуть, менша, ніж кількість ключів розшифровки. Це дійсно питання складності головоломки і тут не дуже важливо. Хоча я і опублікував відповідь щодо цього тут
Чи є сьогодні програми / ігри, які зробили щось подібне? Зберігання зашифрованого вмісту в своїх іграх? А якщо ні, чому? Чи існує багато правил і норм щодо цього на рівні магазину чи країни? Хтось бачить явні підводні камені, які мені не вистачає? Ігноруючи такі речі, як досвід користувача, ця ідея здається мені звуковою і викликає цікавість, чому я цього раніше не бачив.
Редагувати : Можливо, не ясно, що саме я говорю, тому ось конкретніший приклад.
Скажімо, у мене є функція, яка містить рядки з 20 символів і генерує симетричний ключ, який я можу використовувати для шифрування / розшифрування деякого вмісту в грі. Єдиний спосіб, яким користувач міг би дійти до цього вмісту, - це знати ці 20 символів та генерувати той самий ключ. Цей ключ ніколи не зберігається безпосередньо і генерується під час руху на основі даних користувача. Ці персонажі будуть заховані в грі в тому, що можуть бути книги, діалог з NPC, можливо, навіть поза грою на звороті коробки.
Тож, якщо спробувати 2 * 10 ^ 28 можливих комбінацій, ймовірно, буде більш ймовірно, що люди знайдуть вміст таким чином, як задумано, а не за допомогою перегляду даних гри.
Редагувати 2 : Розміщений вміст буде зашифрований довільним та секретним ключем перед тим, як його надсилати споживачеві. Цей ключ, очевидно, не буде поставлений разом із грою. Йому або їй доведеться якось загадувати ключ назад разом, даючи низку підказок, зроблених на основі ключа, і які приховані протягом гри або деінде. Однак ця система буде прозорою для користувача, оскільки ви не знаєте, що вміст був зашифрований, якщо ви насправді не переглянули дані гри.
Як багато хто згадує, це має один очевидний недолік у тому, що його використання обмежене. Після того, як одна людина зрозуміла це, вона / вона може поділитися нею з усіма іншими, якщо не ключ / рішення, то сам вміст. Однак якщо ваш намір полягає в тому, щоб зберегти щось настільки секретно, що одна людина не зможе це вирішити, і люди повинні працювати над її вирішенням, або ви боїтеся, що ваше пасхальне яйце настільки добре приховане (задумом), що це швидше за все хтось знайде його в коді, а не через гру. Тоді я думаю, що це може спрацювати чудово.
Я особисто рекомендував би використовувати його, можливо, один раз за гру і тільки для речей, які не впливають на основні ігри, наприклад, писанки, таємне закінчення. Будь-яка головоломка повинна бути настільки складною або добре прихованою, щоб сповільнити людей достатньо, щоб зробити шифрування вмісту вартим цього, і якщо ця головоломка перешкоджатиме прогресуванню людей, то, мабуть, ніхто не має задоволення.