Какие есть варианты безопасного сохранения игровых данных? Я заинтересован в решениях, специально предназначенных для C ++.
Я ищу что-то быстрое и простое в использовании. Я беспокоюсь только о хранении простой информации, такой как
Какие уровни есть и не разблокированы
Оценка пользователя для каждого уровня
Мне снова любопытно узнать, что можно использовать, какие-нибудь хорошие библиотеки, которые дают мне хорошие, безопасные файлы с игровыми данными, с которыми обычный игрок не может связываться.
Я только что нашел это здесь, которое выглядит очень хорошо, но было бы здорово получить некоторые мнения о потенциальных других библиотеках / вариантах там.
Ответы:
сначала скажем, так как у вас есть очень простой файл сохранения, вы можете использовать текстовый файл.
одна из самых простых идей - использовать ключ строки для блокировки / разблокировки данных:
но после небольшого поиска в Google я нашел эти ссылки, которые могут быть полезны:
Редактировать:
Основываясь на том, что подписанный символ является «неопределенным поведением», как упомянул @ v.oddou, я думаю, что использование XOR или приведение к неподписанному символу приведет к более безопасному / более кросс-платформенному коду. что-то вроде этого:
источник
XOR
вместо увеличения / уменьшения, так как вы можете получить поврежденные данные, если превысите границы типа данных, с которыми имеете дело (char
я полагаю)Ничто не может считаться защищенной клиентской стороной; всякий, кто говорит, что это так, лжет.
Вы можете использовать любой метод шифрования и шифрования, который вы хотите, но, поскольку клиент также должен иметь возможность декодировать его, и пользователь имеет доступ к самому клиенту, если он достаточно изобретателен, у него будет доступ к ключу / алгоритму дешифрования.
Вы можете только добавить слои раздражения тому, кто хочет взломать его, но если у вас будет достаточно времени, он будет взломан , и вы ничего не можете с этим поделать.
источник
You can definitely leave your save file unencrypted but add a checksum that is calculated through all the values that you want to "guard".
The cracker would therefore be able to re-produce the hashing (which you off course will use with proper salt) and therefor will have a happy time trying to re-produce.
This would still not be %100 secure but, probably the best time effective solution.
источник
This provided some simple XOR encryption:
And how to use it:
The output of this code is this:
источник
Here are a few programs (free ones anyway) that could help you, they both basically combine all you resources into a single exe.
NBinder, now a commercial product, this is an old but functional version.
Enigma Virtual Box, another tool with similar features.
источник