Я довольно новичок в Python, и в качестве проекта я работаю над маленькой игрой. Я хотел бы убедиться, что мои данные хранятся в формате, который я не буду сталкиваться с проблемами продвижения вперед.Как хранить данные, чтобы пользователи не могли легко манипулировать им?
Данные, которые мне нужно будет хранить, будут неотъемлемой частью генерации некоторых игровых элементов посредством процедурной генерации - по существу хранения имен, свойств и возможных поведений для этих объектов. Я бы не хотел, чтобы игроки могли легко редактировать файл и изменять значения, чтобы существа общего уровня 1 внезапно сбросили 2 миллиона золотых монет.
Мое намерение в конечном итоге использовать Py2Exe или PyInstaller. Я рассматривал XML, YAML и JSON, но я не уверен, в каком направлении я должен идти, или о том, что я, возможно, не знаю.
Я уверен, что если пользователь захочет достаточно сильно, они могут понять это, но каков наилучший способ сделать неудобным для обычного пользователя манипулирование данными?
Я не думаю, что вам следует решить эту проблему. Во-первых, как вы уже упоминали, это невозможно, чтобы защитить себя. Во-вторых, python не был предназначен для защиты источников приложения. Таким образом, любой, кто решит достаточно, сможет посмотреть ваш код, это означает, что очень сложно защитить данные на месте. У вас не может быть секретного метода шифрования. Кто хочет не испортить веселье, не будет. – luk32
Вы можете использовать JSON и ['gzip'] (https://docs.python.org/3/library/gzip.html). Это сделает содержимое нечитаемым для случайного пользователя, и не более того. –
Вы можете запустить его через простой [xor] (http://en.wikipedia.org/wiki/Bitwise_operation#XOR) ключ. –