Безопасно ли сохранять атрибуты опыта и золота (подобно RPG) в .plist-файле?

Я хочу хранить заработанные опыт и золото, чтобы моя игра загружала данные при каждом запуске игры. Я использую cocos2d на iPhone, что было бы безопасным (не обязательно слишком безопасным) для хранения таких данных?

Я не хочу, чтобы пользователь мог слишком легко изменять очки опыта. Возможно ли это с .plist? Или мне нужно использовать базу данных, например SQL lite? Было бы очень хорошо, если бы пользователь не мог так легко изменить значения .plist.


person KayO    schedule 13.11.2010    source источник


Ответы (2)


Как насчет хранения информации в словаре, ее архивирования, а затем шифрования данных с помощью одной из многих доступных категорий шифрования, например той, которая используется Водный?

Ничто из того, что вы можете сделать, не остановит решительного и опытного хакера, но это сделает его трудным / фактически невозможным для обычного пользователя.

person Joshua Nozzi    schedule 13.11.2010
comment
Привет, я проверил вашу ссылку, но в руководстве разработчика есть только учебники по созданию/проверке лицензий. Я никогда раньше не использовал шифрование, есть ли другой хороший источник/программа, где я могу получить больше информации и который прост в использовании? Если я не буду использовать какое-либо шифрование, скажем, я просто использую простые .plist, будут ли они нечитаемы для людей, у которых нет устройства с джейлбрейком? - person KayO; 14.11.2010
comment
Проверьте еще раз. Страница, на которую я вас связал, представляет собой автономную категорию в NSData с двумя методами (шифрование/дешифрование), которые принимают пароль NSString. Вот и все. - person Joshua Nozzi; 14.11.2010
comment
Что касается файла plist, да, те, у кого нет взломанного устройства, не смогут возиться с данными приложения, если вы не встроите общий доступ к документам и т. д. и не выставите его намеренно. Использование двоичного формата plist (по сравнению с XML) еще больше усложняет чтение/редактирование без приложения Property List Editor, которое поставляется с Xcode Tools. - person Joshua Nozzi; 14.11.2010

Возможно, проще всего использовать NSUserPreferences.

person Brad    schedule 13.11.2010
comment
Безопасно ли делать это таким образом? Я не хочу, чтобы пользователь потерял все свое золото и опыт из-за ошибки, которая может возникнуть. Или данные приложения сохраняются через синхронизацию с Itunes? Есть еще несколько значений, которые я хочу сохранить, например идентификаторы для разных элементов (возможно, 40 элементов) и т. д. Не слишком ли это много для NSUserPreferences? - person KayO; 14.11.2010