2014-10-17 3 views
1

Я использую python с прошлого лета, и я думаю, что я поглотил достаточно информации, чтобы сделать хотя бы базовое программирование.Обфускация данных перед их хранением

Дело в том, что я делаю текстовую rpg-игру, и я уже выполнил процесс сохранения, и игра теперь передает информацию в файл savegame.txt. Но я хочу сделать взлом игры более сложным. Я видел на форумах, что изменение имени файла возможно, но это было недостаточно близко, и/или я не смог прочитать строки, как это работает. Таким образом, идея состоит в том, что он становится нечитаемым, но код внутри не изменится и его можно «нормализовать».

так более ясно:

Как изменить savegame.txt к savegame.xsave (или что-то в этом роде), и наоборот?

+4

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

+2

Действительно ли это действительное использование вашего времени во время игры? Почему бы не подождать, пока вы закончите игру, прежде чем попасть в эту раннюю оптимизацию, kludges, хаки, приклеенные функции ... и т. Д. –

+0

Учтите, что если вам, скажем, нужно проверить определенный уровень или набор обстоятельствам было бы тяжело манипулировать файлом сохранения, чтобы создать указанные обстоятельства (пытаясь достичь определенного уровня с помощью определенного механизма!), если ваш файл сохранения должен быть зашифрован или запутан. Затем вам придется вручную вводить код в функции, чтобы делать такие вещи. Проведите время, делая свою игру, не создавая для нее защитные механизмы. –

ответ

1

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

with open("data.secret", 'w') as f: 
    f.write("player score: 500".encode('rot13')) 
    f.write("player badge: cool guy".encode('rot13') 

with open("data.secret") as f: 
    x = f.readline().decode('rot13') 
0

Просто зашифруйте весь текст в файле любым алгоритмом шифрования. Например, вы можете pycrypto библиотеки.

+0

Не полезно, так как ключ к расшифровке должен быть включен в программу. – davidism

+0

Задача не в том, чтобы взломать невозможно - все можно взломать - задача просто сделать ее несколько сложнее. Для этой цели достаточно простого шифрования. Просто парень, который не знает о шифровании, не сможет просто изменить этот файл :-) – Zav

0

Если вы просто хотите, чтобы текстовый файл нечитаемым можно просто кодировать его, например, base64:

import base64 
encoded = base64.b64encode("myTextFileContents") 
decoded = base64.b64decode(encoded) 

Вы можете прочитать здесь: https://docs.python.org/3/library/base64.html

Смежные вопросы