Возможно, вы можете использовать sharedPreferences с MODE_PRIVATE
, но если вы хотите убедиться, что можете использовать имена и значения хэша, а также добавить дополнительные неиспользуемые поля, чтобы определить, пытается ли кто-то изменить настройки, которые вы узнаете. например
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<long name="asdadadad" value="ASDASDASDAS" />
<long name="asdadadadas" value="ADQOWI232DJQO1231" />
<long name="level_1_score" value="1000" />
<long name="level_2_score" value="1100" />
</map>
Как вы уже назвали имена и ценности, вы получите изображение, подобное этому. когда вы расшифруете asdadadad, вы получите level_1_score
, а когда вы расшифруете ASDASDASDAS
, вы получите некоторое целое число (записано в строке). Если пользователь изменяет хеш, он может быть дешифрован как не целое значение (это не будет возможно разобрать на целое число)
Невозможно расшифровать без знания вашего хэширующего ключа, этот ключ будет сохранен как некоторое постоянное поле в вашей программы.
И вы можете сделать некоторые ловушечные поля, подобные этому, пользователь может подумать, что оценка имени xml равна level_1_score
, но если пользователь меняет это, вы можете поймать пользователя для обмана. (Потому что он не используется)
Почему вас беспокоит, если пользователь меняет свои собственные баллы на своем собственном устройстве? – CommonsWare
Общий балл должен быть представлен публичным лидерам. Эта оценка вычисляется путем суммирования индивидуальных показателей уровня. – Pawel
Тогда почему значение в 'SharedPreferences' является чем-то большим, чем локальный кеш данных, где система записи является сервером? – CommonsWare